Eclipse SUMO - Simulation of Urban MObility
GNEVehicleTypeDialog.cpp
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
14 // Dialog for edit vehicleTypes
15 /****************************************************************************/
16 
17 // ===========================================================================
18 // included modules
19 // ===========================================================================
20 #include <config.h>
21 
22 #include <netedit/GNEUndoList.h>
23 #include <netedit/GNEViewNet.h>
29 
30 #include "GNEVehicleTypeDialog.h"
31 
32 
33 // ===========================================================================
34 // FOX callback mapping
35 // ===========================================================================
36 
37 FXDEFMAP(GNEVehicleTypeDialog::VTypeAtributes) VTypeAtributesMap[] = {
40 };
41 
42 FXDEFMAP(GNEVehicleTypeDialog::CarFollowingModelParameters) CarFollowingModelParametersMap[] = {
44 };
45 
46 // Object implementation
47 FXIMPLEMENT(GNEVehicleTypeDialog::VTypeAtributes, FXVerticalFrame, VTypeAtributesMap, ARRAYNUMBER(VTypeAtributesMap))
48 FXIMPLEMENT(GNEVehicleTypeDialog::CarFollowingModelParameters, FXGroupBox, CarFollowingModelParametersMap, ARRAYNUMBER(CarFollowingModelParametersMap))
49 
50 // ===========================================================================
51 // member method definitions
52 // ===========================================================================
53 
54 // ---------------------------------------------------------------------------
55 // GNEVehicleTypeDialog::VClassRow - methods
56 // ---------------------------------------------------------------------------
57 
58 GNEVehicleTypeDialog::VTypeAtributes::VClassRow::VClassRow(VTypeAtributes* VTypeAtributesParent, FXVerticalFrame* column) :
59  FXHorizontalFrame(column, GUIDesignAuxiliarHorizontalFrame),
60  myVTypeAtributesParent(VTypeAtributesParent) {
61  // create two auxiliar frames
62  FXVerticalFrame* verticalFrameLabelAndComboBox = new FXVerticalFrame(this, GUIDesignAuxiliarVerticalFrame);
63  // create FXComboBox for VClass
64  new FXLabel(verticalFrameLabelAndComboBox, toString(SUMO_ATTR_VCLASS).c_str(), nullptr, GUIDesignLabelAttribute150);
65  myComboBoxVClass = new FXComboBox(verticalFrameLabelAndComboBox, GUIDesignComboBoxNCol,
66  VTypeAtributesParent, MID_GNE_SET_ATTRIBUTE, GUIDesignComboBox);
67  myComboBoxVClassLabelImage = new FXLabel(this, "", nullptr, GUIDesignLabelTickedIcon180x46);
68  myComboBoxVClassLabelImage->setBackColor(FXRGBA(255, 255, 255, 255));
69  // fill combo Box with all allowed VClass for the current edited VType
70  for (const auto& i : myVTypeAtributesParent->myVehicleTypeDialog->getEditedDemandElement()->getTagProperty().getAttributeProperties(SUMO_ATTR_VCLASS).getDiscreteValues()) {
71  if (i != SumoVehicleClassStrings.getString(SVC_IGNORING)) {
72  myComboBoxVClass->appendItem(i.c_str());
73  }
74  }
75  // only show as maximum 10 VClasses
76  if (myComboBoxVClass->getNumItems() > 10) {
77  myComboBoxVClass->setNumVisible(10);
78  } else {
79  myComboBoxVClass->setNumVisible(myComboBoxVClass->getNumItems());
80  }
81 }
82 
83 
86  // set color of myComboBoxVClass, depending if current value is valid or not
87  myComboBoxVClass->setTextColor(FXRGB(0, 0, 0));
89  myComboBoxVClass->setTextColor(FXRGB(0, 0, 0));
90  // check if VType has to be updated
92  // update VClass in VType
95  // update label image
97  // obtain default vType parameters
99  // check if mutable rows haben to be updated
101  myVTypeAtributesParent->myLength->updateValue(toString(defaultVTypeParameters.length));
102  }
104  myVTypeAtributesParent->myMinGap->updateValue(toString(defaultVTypeParameters.minGap));
105  }
108  }
111  }
114  }
117  }
119  myVTypeAtributesParent->myWidth->updateValue(toString(defaultVTypeParameters.width));
120  }
122  myVTypeAtributesParent->myHeight->updateValue(toString(defaultVTypeParameters.height));
123  }
125  myVTypeAtributesParent->myOSGFile->updateValue(toString(defaultVTypeParameters.osgFile));
126  }
129  }
132  }
135  }
138  }
139  }
140  } else {
141  myComboBoxVClass->setTextColor(FXRGB(255, 0, 0));
144  }
146 }
147 
148 
151  myComboBoxVClass->setText(myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(SUMO_ATTR_VCLASS).c_str());
152  setVClassLabelImage();
153  return myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getVClass();
154 }
155 
156 
157 void
159  // by default vclass is passenger
160  if (myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(SUMO_ATTR_VCLASS).empty()) {
161  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_PASSENGER));
162  } else {
163  // set Icon in label depending of current VClass
164  switch (myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getVClass()) {
165  case SVC_PRIVATE:
166  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_PRIVATE));
167  break;
168  case SVC_EMERGENCY:
169  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_EMERGENCY));
170  break;
171  case SVC_AUTHORITY:
172  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_AUTHORITY));
173  break;
174  case SVC_ARMY:
175  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_ARMY));
176  break;
177  case SVC_VIP:
178  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_VIP));
179  break;
180  case SVC_PASSENGER:
181  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_PASSENGER));
182  break;
183  case SVC_HOV:
184  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_HOV));
185  break;
186  case SVC_TAXI:
187  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_TAXI));
188  break;
189  case SVC_BUS:
190  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_BUS));
191  break;
192  case SVC_COACH:
193  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_COACH));
194  break;
195  case SVC_DELIVERY:
196  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_DELIVERY));
197  break;
198  case SVC_TRUCK:
199  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_TRUCK));
200  break;
201  case SVC_TRAILER:
202  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_TRAILER));
203  break;
204  case SVC_TRAM:
205  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_TRAM));
206  break;
207  case SVC_RAIL_URBAN:
208  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_RAIL_URBAN));
209  break;
210  case SVC_RAIL:
211  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_RAIL));
212  break;
213  case SVC_RAIL_ELECTRIC:
214  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_RAIL_ELECTRIC));
215  break;
216  case SVC_RAIL_FAST:
217  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_RAIL_ELECTRIC));
218  break;
219  case SVC_MOTORCYCLE:
220  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_MOTORCYCLE));
221  break;
222  case SVC_MOPED:
223  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_MOPED));
224  break;
225  case SVC_BICYCLE:
226  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_BICYCLE));
227  break;
228  case SVC_PEDESTRIAN:
229  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_PEDESTRIAN));
230  break;
231  case SVC_E_VEHICLE:
232  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_EVEHICLE));
233  break;
234  case SVC_SHIP:
235  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_SHIP));
236  break;
237  case SVC_CUSTOM1:
238  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_CUSTOM1));
239  break;
240  case SVC_CUSTOM2:
241  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_CUSTOM2));
242  break;
243  default:
244  myComboBoxVClassLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_IGNORING));
245  break;
246  }
247  }
248 }
249 
250 // ---------------------------------------------------------------------------
251 // GNEVehicleTypeDialog::VShapeRow - methods
252 // ---------------------------------------------------------------------------
253 
254 GNEVehicleTypeDialog::VTypeAtributes::VShapeRow::VShapeRow(VTypeAtributes* VTypeAtributesParent, FXVerticalFrame* column) :
255  FXHorizontalFrame(column, GUIDesignAuxiliarHorizontalFrame),
256  myVTypeAtributesParent(VTypeAtributesParent) {
257  // create two auxiliar frames
258  FXVerticalFrame* verticalFrameLabelAndComboBox = new FXVerticalFrame(this, GUIDesignAuxiliarVerticalFrame);
259  // create combo for for vehicle shapes
260  new FXLabel(verticalFrameLabelAndComboBox, toString(SUMO_ATTR_GUISHAPE).c_str(), nullptr, GUIDesignLabelAttribute150);
261  myComboBoxShape = new FXComboBox(verticalFrameLabelAndComboBox, GUIDesignComboBoxNCol,
262  VTypeAtributesParent, MID_GNE_SET_ATTRIBUTE, GUIDesignComboBox);
263  myComboBoxShapeLabelImage = new FXLabel(this, "", nullptr, GUIDesignLabelTickedIcon180x46);
264  myComboBoxShapeLabelImage->setBackColor(FXRGBA(255, 255, 255, 255));
265  // fill combo Box with all vehicle shapes
266  std::vector<std::string> VShapeStrings = SumoVehicleShapeStrings.getStrings();
267  for (auto i : VShapeStrings) {
268  if (i != SumoVehicleShapeStrings.getString(SVS_UNKNOWN)) {
269  myComboBoxShape->appendItem(i.c_str());
270  }
271  }
272  // only show 10 Shapes
273  myComboBoxShape->setNumVisible(10);
274 }
275 
276 
277 void
279  // set color of myComboBoxShape, depending if current value is valid or not
280  if (myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(SUMO_ATTR_GUISHAPE, myComboBoxShape->getText().text())) {
281  myComboBoxShape->setTextColor(FXRGB(0, 0, 0));
282  myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(SUMO_ATTR_GUISHAPE, myComboBoxShape->getText().text(),
283  myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getViewNet()->getUndoList());
284  setVShapeLabelImage();
285  } else {
286  myComboBoxShape->setTextColor(FXRGB(255, 0, 0));
287  myVTypeAtributesParent->myVehicleTypeDialog->myVehicleTypeValid = false;
288  myVTypeAtributesParent->myVehicleTypeDialog->myInvalidAttr = SUMO_ATTR_GUISHAPE;
289  }
290 }
291 
292 
293 void
295  myComboBoxShape->setText(myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(SUMO_ATTR_GUISHAPE).c_str());
296  setVShapeLabelImage();
297 }
298 
299 
300 void
302  // set Icon in label depending of current VClass
303  switch (getVehicleShapeID(myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(SUMO_ATTR_GUISHAPE))) {
304  case SVS_UNKNOWN:
305  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_UNKNOWN));
306  break;
307  case SVS_PEDESTRIAN:
308  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_PEDESTRIAN));
309  break;
310  case SVS_BICYCLE:
311  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_BICYCLE));
312  break;
313  case SVS_MOPED:
314  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_MOPED));
315  break;
316  case SVS_MOTORCYCLE:
317  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_MOTORCYCLE));
318  break;
319  case SVS_PASSENGER:
320  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_PASSENGER));
321  break;
322  case SVS_PASSENGER_SEDAN:
323  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_PASSENGER_SEDAN));
324  break;
326  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_PASSENGER_HATCHBACK));
327  break;
328  case SVS_PASSENGER_WAGON:
329  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_PASSENGER_WAGON));
330  break;
331  case SVS_PASSENGER_VAN:
332  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_PASSENGER_VAN));
333  break;
334  case SVS_DELIVERY:
335  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_DELIVERY));
336  break;
337  case SVS_TRUCK:
338  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_TRUCK));
339  break;
341  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_TRUCK_SEMITRAILER));
342  break;
343  case SVS_TRUCK_1TRAILER:
344  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_TRUCK_1TRAILER));
345  break;
346  case SVS_BUS:
347  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_BUS));
348  break;
349  case SVS_BUS_COACH:
350  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_BUS_COACH));
351  break;
352  case SVS_BUS_FLEXIBLE:
353  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_BUS_FLEXIBLE));
354  break;
355  case SVS_BUS_TROLLEY:
356  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_BUS_TROLLEY));
357  break;
358  case SVS_RAIL:
359  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_RAIL));
360  break;
361  case SVS_RAIL_CAR:
362  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_RAIL_CAR));
363  break;
364  case SVS_RAIL_CARGO:
365  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_RAIL_CARGO));
366  break;
367  case SVS_E_VEHICLE:
368  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_E_VEHICLE));
369  break;
370  case SVS_ANT:
371  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_ANT));
372  break;
373  case SVS_SHIP:
374  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_SHIP));
375  break;
376  case SVS_EMERGENCY:
377  case SVS_FIREBRIGADE:
378  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_EMERGENCY));
379  break;
380  case SVS_POLICE:
381  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_POLICE));
382  break;
383  case SVS_RICKSHAW:
384  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VSHAPE_RICKSHAW));
385  break;
386  default:
387  myComboBoxShapeLabelImage->setIcon(GUIIconSubSys::getIcon(ICON_VCLASS_IGNORING));
388  break;
389  }
390 }
391 
392 // ---------------------------------------------------------------------------
393 // GNEVehicleTypeDialog::VTypeAtributes - methods
394 // ---------------------------------------------------------------------------
395 
396 GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::VTypeAttributeRow(VTypeAtributes* VTypeAtributesParent, FXVerticalFrame* verticalFrame, const SumoXMLAttr attr, const RowAttrType rowAttrType, const std::vector<std::string>& values) :
397  FXHorizontalFrame(verticalFrame, GUIDesignAuxiliarHorizontalFrame),
398  myVTypeAtributesParent(VTypeAtributesParent),
399  myAttr(attr),
400  myRowAttrType(rowAttrType),
401  myButton(nullptr),
402  myTextField(nullptr),
403  myComboBox(nullptr) {
404  // first check if we have to create a button or a label
405  if ((rowAttrType == ROWTYPE_COLOR) || (rowAttrType == ROWTYPE_FILENAME)) {
406  myButton = new FXButton(this, filterAttributeName(attr), nullptr, VTypeAtributesParent, MID_GNE_SET_ATTRIBUTE_DIALOG, GUIDesignButtonRectangular150x23);
407  } else {
408  new FXLabel(this, filterAttributeName(attr), nullptr, GUIDesignLabelAttribute150);
409  }
410  // now check if we have to create a textfield or a ComboBox
411  if ((rowAttrType == ROWTYPE_STRING) || (rowAttrType == ROWTYPE_COLOR)) {
412  myTextField = new FXTextField(this, GUIDesignTextFieldNCol, VTypeAtributesParent, MID_GNE_SET_ATTRIBUTE, GUIDesignTextFielWidth180);
413  } else if (rowAttrType == ROWTYPE_FILENAME) {
414  myTextField = new FXTextField(this, GUIDesignTextFieldNCol, VTypeAtributesParent, MID_GNE_SET_ATTRIBUTE, GUIDesignTextFielWidth180);
415  } else if (rowAttrType == ROWTYPE_COMBOBOX) {
416  myComboBox = new FXComboBox(this, GUIDesignComboBoxNCol, VTypeAtributesParent, MID_GNE_SET_ATTRIBUTE, GUIDesignComboBoxWidth180);
417  // fill combo Box with values
418  for (auto i : values) {
419  myComboBox->appendItem(i.c_str());
420  }
421  // set 10 visible elements as maximum
422  if (myComboBox->getNumItems() < 10) {
423  myComboBox->setNumVisible(myComboBox->getNumItems());
424  } else {
425  myComboBox->setNumVisible(10);
426  }
427  } else {
428  throw ProcessError("Invalid row type");
429  }
430 }
431 
432 
433 void
435  if (myRowAttrType == ROWTYPE_COMBOBOX) {
436  // set color of myComboBox, depending if current value is valid or not
437  if (myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, myComboBox->getText().text())) {
438  myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, myComboBox->getText().text(),
439  myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getViewNet()->getUndoList());
440  // update value after setting it
441  updateValue();
442  } else {
443  myComboBox->setTextColor(FXRGB(255, 0, 0));
444  // mark VType as invalid
445  myVTypeAtributesParent->myVehicleTypeDialog->myVehicleTypeValid = false;
446  myVTypeAtributesParent->myVehicleTypeDialog->myInvalidAttr = myAttr;
447  }
448  } else if (myRowAttrType == ROWTYPE_COLOR) {
449  // set color of myTextFieldColor, depending if current value is valid or not
450  if (myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(SUMO_ATTR_COLOR, myTextField->getText().text())) {
451  // set color depending if is a default value
452  if (myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty().getDefaultValue(SUMO_ATTR_COLOR) != myTextField->getText().text()) {
453  myTextField->setTextColor(FXRGB(0, 0, 0));
454  } else {
455  myTextField->setTextColor(FXRGB(195, 195, 195));
456  }
457  myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(SUMO_ATTR_COLOR, myTextField->getText().text(), myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getViewNet()->getUndoList());
458  } else {
459  myTextField->setTextColor(FXRGB(255, 0, 0));
460  myVTypeAtributesParent->myVehicleTypeDialog->myVehicleTypeValid = false;
461  myVTypeAtributesParent->myVehicleTypeDialog->myInvalidAttr = SUMO_ATTR_COLOR;
462  }
463  } else {
464  // set color of textField, depending if current value is valid or not
465  if (myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, myTextField->getText().text())) {
466  myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, myTextField->getText().text(),
467  myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getViewNet()->getUndoList());
468  // update value after setting it
469  updateValue();
470  } else {
471  myTextField->setTextColor(FXRGB(255, 0, 0));
472  // mark VType as invalid
473  myVTypeAtributesParent->myVehicleTypeDialog->myVehicleTypeValid = false;
474  myVTypeAtributesParent->myVehicleTypeDialog->myInvalidAttr = myAttr;
475  }
476  }
477 }
478 
479 
480 void
482  if (myComboBox) {
483  // set color of myComboBox, depending if current value is valid or not
484  if (myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, myComboBox->getText().text())) {
485  myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, myComboBox->getText().text(),
486  myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getViewNet()->getUndoList());
487  // update value after setting it
488  updateValue(defaultValue);
489  } else {
490  myComboBox->setTextColor(FXRGB(255, 0, 0));
491  // mark VType as invalid
492  myVTypeAtributesParent->myVehicleTypeDialog->myVehicleTypeValid = false;
493  myVTypeAtributesParent->myVehicleTypeDialog->myInvalidAttr = myAttr;
494  }
495  } else {
496  // set color of textField, depending if current value is valid or not
497  if (myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, myTextField->getText().text())) {
498  myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, myTextField->getText().text(),
499  myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getViewNet()->getUndoList());
500  // update value after setting it
501  updateValue(defaultValue);
502  } else {
503  myTextField->setTextColor(FXRGB(255, 0, 0));
504  // mark VType as invalid
505  myVTypeAtributesParent->myVehicleTypeDialog->myVehicleTypeValid = false;
506  myVTypeAtributesParent->myVehicleTypeDialog->myInvalidAttr = myAttr;
507  }
508  }
509 }
510 
511 
512 void
514  if (myRowAttrType == ROWTYPE_COMBOBOX) {
515  // set text of myComboBox using current value of VType
516  myComboBox->setText(myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
517  // set color depending if is a default value
518  if (myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty().getDefaultValue(myAttr) != myComboBox->getText().text()) {
519  myComboBox->setTextColor(FXRGB(0, 0, 0));
520  } else {
521  myComboBox->setTextColor(FXRGB(195, 195, 195));
522  }
523  } else if (myRowAttrType == ROWTYPE_COLOR) {
524  // set field color
525  myTextField->setText(myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
526  // set color depending if is a default value
527  if (myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty().getDefaultValue(myAttr) != myTextField->getText().text()) {
528  myTextField->setTextColor(FXRGB(0, 0, 0));
529  } else {
530  myTextField->setTextColor(FXRGB(195, 195, 195));
531  }
532  } else {
533  // set text of myTextField using current value of VType
534  myTextField->setText(myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
535  // set color depending if is a default value
536  if (myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty().getDefaultValue(myAttr) != myTextField->getText().text()) {
537  myTextField->setTextColor(FXRGB(0, 0, 0));
538  } else {
539  myTextField->setTextColor(FXRGB(195, 195, 195));
540  }
541  }
542 }
543 
544 
545 void
547  if (myComboBox) {
548  // set text of myComboBox using current value of VType
549  myComboBox->setText(myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
550  // set color depending if is a default value
551  if (defaultValue != myComboBox->getText().text()) {
552  myComboBox->setTextColor(FXRGB(0, 0, 0));
553  } else {
554  myComboBox->setTextColor(FXRGB(195, 195, 195));
555  }
556  } else {
557  // set text of myTextField using current value of VType
558  myTextField->setText(myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
559  // set color depending if is a default value
560  if (defaultValue != myTextField->getText().text()) {
561  myTextField->setTextColor(FXRGB(0, 0, 0));
562  } else {
563  myTextField->setTextColor(FXRGB(195, 195, 195));
564  }
565  }
566 }
567 
568 
569 const FXButton*
571  return myButton;
572 }
573 
574 
575 void
577  // create FXColorDialog
578  FXColorDialog colordialog(this, tr("Color Dialog"));
579  colordialog.setTarget(this);
580  // If previous attribute wasn't correct, set black as default color
581  if (GNEAttributeCarrier::canParse<RGBColor>(myTextField->getText().text())) {
582  colordialog.setRGBA(MFXUtils::getFXColor(RGBColor::parseColor(myTextField->getText().text())));
583  } else {
584  colordialog.setRGBA(MFXUtils::getFXColor(RGBColor::BLACK));
585  }
586  // execute dialog to get a new color
587  if (colordialog.execute()) {
588  std::string newValue = toString(MFXUtils::getRGBColor(colordialog.getRGBA()));
589  myTextField->setText(newValue.c_str());
590  if (myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, newValue)) {
591  myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, newValue, myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getViewNet()->getUndoList());
592  // If previously value was incorrect, change font color to black
593  myTextField->setTextColor(FXRGB(0, 0, 0));
594  myTextField->killFocus();
595  }
596  }
597 }
598 
599 
600 void
602  // get the new image file
603  FXFileDialog opendialog(this, "Open Image");
604  opendialog.setIcon(GUIIconSubSys::getIcon(ICON_VTYPE));
605  opendialog.setSelectMode(SELECTFILE_EXISTING);
606  opendialog.setPatternList("All files (*)");
607  if (gCurrentFolder.length() != 0) {
608  opendialog.setDirectory(gCurrentFolder);
609  }
610  if (opendialog.execute()) {
611  // update global current folder
612  gCurrentFolder = opendialog.getDirectory();
613  // get image path
614  std::string imagePath = opendialog.getFilename().text();
615  // check if image is valid
616  if (myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, imagePath)) {
617  myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, imagePath, myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getViewNet()->getUndoList());
618  myTextField->setText(imagePath.c_str());
619  // If previously value was incorrect, change font color to black
620  myTextField->setTextColor(FXRGB(0, 0, 0));
621  myTextField->killFocus();
622  }
623  }
624 }
625 
626 
627 void
629  // get the new file name
630  FXFileDialog opendialog(this, "Open OSG File");
631  opendialog.setIcon(GUIIconSubSys::getIcon(ICON_VTYPE));
632  opendialog.setSelectMode(SELECTFILE_EXISTING);
633  opendialog.setPatternList("OSG file (*.obj)");
634  if (gCurrentFolder.length() != 0) {
635  opendialog.setDirectory(gCurrentFolder);
636  }
637  if (opendialog.execute()) {
638  // update global current folder
639  gCurrentFolder = opendialog.getDirectory();
640  // get image path
641  std::string imagePath = opendialog.getFilename().text();
642  // check if image is valid
643  if (myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, imagePath)) {
644  myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, imagePath, myVTypeAtributesParent->myVehicleTypeDialog->myEditedDemandElement->getViewNet()->getUndoList());
645  myTextField->setText(imagePath.c_str());
646  // If previously value was incorrect, change font color to black
647  myTextField->setTextColor(FXRGB(0, 0, 0));
648  myTextField->killFocus();
649  }
650  }
651 }
652 
653 
654 FXString
656  switch (attr) {
657  // JM
659  return "crossingGap";
661  return "driveAfterYellowTime";
663  return "driveAfterRedTime";
665  return "driveRedSpeed";
667  return "ignoreKeepClearTime";
669  return "ignoreFoeSpeed";
671  return "ignoreFoeProb";
673  return "sigmaMinor";
675  return "timegapMinor";
676  // LCM
678  return "strategic";
680  return "cooperative";
682  return "speedGain";
684  return "keepRight";
686  return "sublane";
688  return "opposite";
689  case SUMO_ATTR_LCA_PUSHY:
690  return "pushy";
692  return "pushyGap";
694  return "assertive";
696  return "impatience";
698  return "timeToImpatience";
700  return "accelLat";
702  return "lookaheadLeft";
704  return "speedGainRight";
706  return "maxSpeedLatStanding";
708  return "maxSpeedLatFactor";
710  return "turnAlignDistance";
712  return "overtakeRight";
713  /* case SUMO_ATTR_LCA_EXPERIMENTAL1:
714  return "experimental1";
715  */
716  default:
717  return toString(attr).c_str();
718  }
719 }
720 
721 // ---------------------------------------------------------------------------
722 // GNEVehicleTypeDialog::VTypeAtributes - methods
723 // ---------------------------------------------------------------------------
724 
725 GNEVehicleTypeDialog::VTypeAtributes::VTypeAtributes(GNEVehicleTypeDialog* vehicleTypeDialog, FXHorizontalFrame* column) :
726  FXVerticalFrame(column, GUIDesignAuxiliarVerticalFrame),
727  myVehicleTypeDialog(vehicleTypeDialog) {
728  // declare two auxiliar horizontal frames
729  FXHorizontalFrame* firstAuxiliarHorizontalFrame = new FXHorizontalFrame(this, GUIDesignAuxiliarHorizontalFrame);
730  FXVerticalFrame* firstAuxiliarVerticalFrame = new FXVerticalFrame(firstAuxiliarHorizontalFrame, GUIDesignAuxiliarVerticalFrame);
731  // create attributes for common attributes
732  FXGroupBox* commonAttributes = new FXGroupBox(firstAuxiliarVerticalFrame, "Vehicle Type attributes", GUIDesignGroupBoxFrame);
733  // create horizontal frame for columns of attributes
734  FXHorizontalFrame* columnsBasicVTypeAttributes = new FXHorizontalFrame(commonAttributes, GUIDesignAuxiliarHorizontalFrame);
735  // build left attributes
736  buildAttributesA(new FXVerticalFrame(columnsBasicVTypeAttributes, GUIDesignAuxiliarFrame));
737  // build right attributes
738  buildAttributesB(new FXVerticalFrame(columnsBasicVTypeAttributes, GUIDesignAuxiliarFrame));
739  // create GroupBox for Junction Model Attributes
740  FXGroupBox* JMAttributes = new FXGroupBox(firstAuxiliarVerticalFrame, "Junction Model attributes", GUIDesignGroupBoxFrame);
741  // create horizontal frame for columns of Junction Model attributes
742  FXHorizontalFrame* columnsJMVTypeAttributes = new FXHorizontalFrame(JMAttributes, GUIDesignAuxiliarHorizontalFrame);
743  // build left attributes
744  buildJunctionModelAttributesA(new FXVerticalFrame(columnsJMVTypeAttributes, GUIDesignAuxiliarFrame));
745  // build right attributes
746  buildJunctionModelAttributesB(new FXVerticalFrame(columnsJMVTypeAttributes, GUIDesignAuxiliarFrame));
747  // create GroupBox for Junction Model Attributes
748  FXGroupBox* LCMAttributes = new FXGroupBox(firstAuxiliarHorizontalFrame, "Lane Change Model attributes", GUIDesignGroupBoxFrame);
749  // create Lane Change Model Attributes
750  buildLaneChangeModelAttributes(new FXVerticalFrame(LCMAttributes, GUIDesignAuxiliarFrame));
751 }
752 
753 
754 void
756  // 01 Create VClassRow
757  myVClassRow = new VClassRow(this, column);
758 
759  // 02 create FXTextField and Label for vehicleTypeID
760  FXHorizontalFrame* row = new FXHorizontalFrame(column, GUIDesignAuxiliarHorizontalFrame);
761  new FXLabel(row, toString(SUMO_ATTR_ID).c_str(), nullptr, GUIDesignLabelAttribute150);
762  myTextFieldVehicleTypeID = new FXTextField(row, GUIDesignTextFieldNCol, this, MID_GNE_SET_ATTRIBUTE, GUIDesignTextFielWidth180);
763 
764  // 03 create FXTextField and Button for Color
765  myColor = new VTypeAttributeRow(this, column, SUMO_ATTR_COLOR, VTypeAttributeRow::RowAttrType::ROWTYPE_COLOR);
766 
767  // 04 create FXTextField and Label for Length
768  myLength = new VTypeAttributeRow(this, column, SUMO_ATTR_LENGTH, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
769 
770  // 05 create FXTextField and Label for MinGap
771  myMinGap = new VTypeAttributeRow(this, column, SUMO_ATTR_MINGAP, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
772 
773  // 06 create FXTextField and Label for MaxSpeed
774  myMaxSpeed = new VTypeAttributeRow(this, column, SUMO_ATTR_MAXSPEED, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
775 
776  // 07 create FXTextField and Label for SpeedFactor
777  mySpeedFactor = new VTypeAttributeRow(this, column, SUMO_ATTR_SPEEDFACTOR, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
778 
779  // 08 create FXTextField and Label for SpeedDev
780  mySpeedDev = new VTypeAttributeRow(this, column, SUMO_ATTR_SPEEDDEV, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
781 
782  // 09 create FXTextField and Label for EmissionClass
783  myEmissionClass = new VTypeAttributeRow(this, column, SUMO_ATTR_EMISSIONCLASS, VTypeAttributeRow::RowAttrType::ROWTYPE_COMBOBOX, PollutantsInterface::getAllClassesStr());
784 
785  // 10 create FXTextField and Label for Width
786  myWidth = new VTypeAttributeRow(this, column, SUMO_ATTR_WIDTH, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
787 
788  // 11 create FXTextField and Label for Height
789  myHeight = new VTypeAttributeRow(this, column, SUMO_ATTR_HEIGHT, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
790 
791  // 12 create FXTextField and Label for Filename
792  myFilename = new VTypeAttributeRow(this, column, SUMO_ATTR_IMGFILE, VTypeAttributeRow::RowAttrType::ROWTYPE_FILENAME);
793 
794  // 13 create FXTextField and Label for Filename
795  myOSGFile = new VTypeAttributeRow(this, column, SUMO_ATTR_OSGFILE, VTypeAttributeRow::RowAttrType::ROWTYPE_FILENAME);
796 
797  // 14 create VTypeAttributeRow and Label for Probability
798  myProbability = new VTypeAttributeRow(this, column, SUMO_ATTR_PROB, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
799 }
800 
801 
802 void
804  // 01 Create VShapeRow
805  myVShapeRow = new VShapeRow(this, column);
806 
807  // 02 create VTypeAttributeRow and Label for LaneChangeModel
808  myLaneChangeModel = new VTypeAttributeRow(this, column, SUMO_ATTR_LANE_CHANGE_MODEL, VTypeAttributeRow::RowAttrType::ROWTYPE_COMBOBOX, SUMOXMLDefinitions::LaneChangeModels.getStrings());
809 
810  // 03 create VTypeAttributeRow and Label for PersonCapacity
811  myPersonCapacity = new VTypeAttributeRow(this, column, SUMO_ATTR_PERSON_CAPACITY, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
812 
813  // 04 create VTypeAttributeRow and Label for ContainerCapacity
814  myContainerCapacity = new VTypeAttributeRow(this, column, SUMO_ATTR_CONTAINER_CAPACITY, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
815 
816  // 05 create VTypeAttributeRow and Label for BoardingDuration
817  myBoardingDuration = new VTypeAttributeRow(this, column, SUMO_ATTR_BOARDING_DURATION, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
818 
819  // 06 create VTypeAttributeRow and Label for LoadingDuration
820  myLoadingDuration = new VTypeAttributeRow(this, column, SUMO_ATTR_LOADING_DURATION, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
821 
822  // 07 create ComboBox and Label for LatAlignment
823  myLatAlignment = new VTypeAttributeRow(this, column, SUMO_ATTR_LATALIGNMENT, VTypeAttributeRow::RowAttrType::ROWTYPE_COMBOBOX, SUMOXMLDefinitions::LateralAlignments.getStrings());
824 
825  // 08 create VTypeAttributeRow and Label for MinGapLat
826  myMinGapLat = new VTypeAttributeRow(this, column, SUMO_ATTR_MINGAP_LAT, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
827 
828  // 09 create VTypeAttributeRow and Label for MaxSpeedLat
829  myMaxSpeedLat = new VTypeAttributeRow(this, column, SUMO_ATTR_MAXSPEED_LAT, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
830 
831  // 10 create VTypeAttributeRow and Label for ActionStepLength
832  myActionStepLength = new VTypeAttributeRow(this, column, SUMO_ATTR_ACTIONSTEPLENGTH, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
833 
834  // 11 create FXTextField and Label for Carriage length
835  myCarriageLength = new VTypeAttributeRow(this, column, SUMO_ATTR_CARRIAGE_LENGTH, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
836 
837  // 12 create FXTextField and Label for Locomotive length
838  myLocomotiveLength = new VTypeAttributeRow(this, column, SUMO_ATTR_LOCOMOTIVE_LENGTH, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
839 
840  // 13 create FXTextField and Label for carriage GAP
841  myCarriageGap = new VTypeAttributeRow(this, column, SUMO_ATTR_CARRIAGE_GAP, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
842 }
843 
844 
845 void
847  // 01 create VTypeAttributeRow and Label for JMCrossingGap
848  myJMCrossingGap = new VTypeAttributeRow(this, column, SUMO_ATTR_JM_CROSSING_GAP, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
849 
850  // 02 create VTypeAttributeRow and Label for JMIgnoreKeepclearTime
851  myJMIgnoreKeepclearTime = new VTypeAttributeRow(this, column, SUMO_ATTR_JM_IGNORE_KEEPCLEAR_TIME, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
852 
853  // 03 create VTypeAttributeRow and Label for JMDriveAfterYellowTime
854  myJMDriveAfterYellowTime = new VTypeAttributeRow(this, column, SUMO_ATTR_JM_DRIVE_AFTER_YELLOW_TIME, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
855 
856  // 04 create VTypeAttributeRow and Label for JMDriveAfterRedTime
857  myJMDriveAfterRedTime = new VTypeAttributeRow(this, column, SUMO_ATTR_JM_DRIVE_AFTER_RED_TIME, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
858 
859  // 05 create VTypeAttributeRow and Label for JMDriveRedSpeed
860  myJMDriveRedSpeed = new VTypeAttributeRow(this, column, SUMO_ATTR_JM_DRIVE_RED_SPEED, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
861 }
862 
863 
864 void
866  // 01 create VTypeAttributeRow and Label for JMIgnoreFoeProb
867  myJMIgnoreFoeProb = new VTypeAttributeRow(this, column, SUMO_ATTR_JM_IGNORE_FOE_PROB, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
868 
869  // 02 create VTypeAttributeRow and Label for JMIgnoreFoeSpeed
870  myJMIgnoreFoeSpeed = new VTypeAttributeRow(this, column, SUMO_ATTR_JM_IGNORE_FOE_SPEED, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
871 
872  // 03 create VTypeAttributeRow and Label for JMSigmaMinor
873  myJMSigmaMinor = new VTypeAttributeRow(this, column, SUMO_ATTR_JM_SIGMA_MINOR, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
874 
875  // 04 create VTypeAttributeRow and Label for JMTimeGapMinor
876  myJMTimeGapMinor = new VTypeAttributeRow(this, column, SUMO_ATTR_JM_TIMEGAP_MINOR, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
877 
878  // 05 create VTypeAttributeRow and Label for Impatience
879  myJMImpatience = new VTypeAttributeRow(this, column, SUMO_ATTR_IMPATIENCE, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
880 }
881 
882 
883 void
885  // 01 create VTypeAttributeRow and Label for strategic param
886  myLCAStrategicParam = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_STRATEGIC_PARAM, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
887 
888  // 02 create VTypeAttributeRow and Label for cooperative param
889  myLCACooperativeParam = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_COOPERATIVE_PARAM, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
890 
891  // 03 create VTypeAttributeRow and Label for speed gain param
892  myLCASpeedgainParam = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_SPEEDGAIN_PARAM, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
893 
894  // 04 create VTypeAttributeRow and Label for keepright param
895  myLCAKeeprightParam = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_KEEPRIGHT_PARAM, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
896 
897  // 05 create VTypeAttributeRow and Label for sublane param
898  myLCASublaneParam = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_SUBLANE_PARAM, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
899 
900  // 06 create VTypeAttributeRow and Label for opposite param
901  myLCAOppositeParam = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_OPPOSITE_PARAM, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
902 
903  // 07 create VTypeAttributeRow and Label for pushy
904  myLCAPushy = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_PUSHY, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
905 
906  // 08 create VTypeAttributeRow and Label for pushy gap
907  myLCAPushygap = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_PUSHYGAP, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
908 
909  // 09 create VTypeAttributeRow and Label for assertive
910  myLCAAssertive = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_ASSERTIVE, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
911 
912  // 10 create VTypeAttributeRow and Label for impatience
913  myLCAImpatience = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_IMPATIENCE, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
914 
915  // 11 create VTypeAttributeRow and Label for time to impatience
916  myLCATimeToImpatience = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_TIME_TO_IMPATIENCE, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
917 
918  // 12 create VTypeAttributeRow and Label for accel lat
919  myLCAAccelLat = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_ACCEL_LAT, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
920 
921  // 13 create VTypeAttributeRow and Label for look ahead lefth
922  myLCALookAheadLeft = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_LOOKAHEADLEFT, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
923 
924  // 14 create VTypeAttributeRow and Label for speed gain right
925  myLCASpeedGainRight = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_SPEEDGAINRIGHT, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
926 
927  // 15 create VTypeAttributeRow and Label for max speed lat standing
928  myLCAMaxSpeedLatStanding = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_MAXSPEEDLATSTANDING, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
929 
930  // 16 create VTypeAttributeRow and Label for max speed lat factor
931  myLCAMaxSpeedLatFactor = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_MAXSPEEDLATFACTOR, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
932 
933  // 17 create VTypeAttributeRow and Label for turn alignment distance
934  myLCATurnAlignmentDistance = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_TURN_ALIGNMENT_DISTANCE, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
935 
936  // 18 create VTypeAttributeRow and Label for overtake right
937  myLCAOvertakeRight = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_OVERTAKE_RIGHT, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING);
938 
939  // 19 create VTypeAttributeRow and Label for experimental
940  /* myLCAExperimental = new VTypeAttributeRow(this, column, SUMO_ATTR_LCA_EXPERIMENTAL1, VTypeAttributeRow::RowAttrType::ROWTYPE_STRING); */
941 }
942 
943 
944 void
946  //set values of myEditedDemandElement into fields
947  myTextFieldVehicleTypeID->setText(myVehicleTypeDialog->myEditedDemandElement->getAttribute(SUMO_ATTR_ID).c_str());
948  // set variables of special rows VClass and VShape
949  SUMOVTypeParameter::VClassDefaultValues defaultVTypeParameters(myVClassRow->updateValue());
950  myVShapeRow->updateValues();
951  // update rows
952  myLaneChangeModel->updateValue();
953  myLatAlignment->updateValue();
954  myColor->updateValue();
955  myLength->updateValue(toString(defaultVTypeParameters.length));
956  myMinGap->updateValue(toString(defaultVTypeParameters.minGap));
957  myMaxSpeed->updateValue(toString(defaultVTypeParameters.maxSpeed));
958  mySpeedFactor->updateValue(toString(defaultVTypeParameters.speedFactor.getParameter()[0]));
959  mySpeedDev->updateValue(toString(defaultVTypeParameters.speedFactor.getParameter()[1]));
960  myEmissionClass->updateValue(toString(defaultVTypeParameters.emissionClass));
961  myWidth->updateValue(toString(defaultVTypeParameters.width));
962  myHeight->updateValue(toString(defaultVTypeParameters.height));
963  myFilename->updateValue();
964  myOSGFile->updateValue(toString(defaultVTypeParameters.osgFile));
965  myPersonCapacity->updateValue(toString(defaultVTypeParameters.personCapacity));
966  myContainerCapacity->updateValue(toString(defaultVTypeParameters.containerCapacity));
967  myCarriageLength->updateValue(toString(defaultVTypeParameters.carriageLength));
968  myLocomotiveLength->updateValue(toString(defaultVTypeParameters.locomotiveLength));
969  myBoardingDuration->updateValue();
970  myLoadingDuration->updateValue();
971  myMinGapLat->updateValue();
972  myMaxSpeedLat->updateValue();
973  myActionStepLength->updateValue();
974  myProbability->updateValue();
975  myCarriageGap->updateValue();
976  // JM Parameters
977  myJMCrossingGap->updateValue();
978  myJMIgnoreKeepclearTime->updateValue();
979  myJMDriveAfterYellowTime->updateValue();
980  myJMDriveAfterRedTime->updateValue();
981  myJMDriveRedSpeed->updateValue();
982  myJMIgnoreFoeProb->updateValue();
983  myJMIgnoreFoeSpeed->updateValue();
984  myJMSigmaMinor->updateValue();
985  myJMTimeGapMinor->updateValue();
986  myJMImpatience->updateValue();
987  // LCM Attributes
988  myLCAStrategicParam->updateValue();
989  myLCACooperativeParam->updateValue();
990  myLCASpeedgainParam->updateValue();
991  myLCAKeeprightParam->updateValue();
992  myLCASublaneParam->updateValue();
993  myLCAOppositeParam->updateValue();
994  myLCAPushy->updateValue();
995  myLCAPushygap->updateValue();
996  myLCAAssertive->updateValue();
997  myLCAImpatience->updateValue();
998  myLCATimeToImpatience->updateValue();
999  myLCAAccelLat->updateValue();
1000  myLCALookAheadLeft->updateValue();
1001  myLCASpeedGainRight->updateValue();
1002  myLCAMaxSpeedLatStanding->updateValue();
1003  myLCAMaxSpeedLatFactor->updateValue();
1004  myLCATurnAlignmentDistance->updateValue();
1005  myLCAOvertakeRight->updateValue();
1006  /* myLCAExperimental->updateValue(); */
1007 }
1008 
1009 
1010 long
1012  // At start we assumed, that all values are valid
1013  myVehicleTypeDialog->myVehicleTypeValid = true;
1014  myVehicleTypeDialog->myInvalidAttr = SUMO_ATTR_NOTHING;
1015  // set color of myTextFieldVehicleTypeID, depending if current value is valid or not
1016  if (myVehicleTypeDialog->myEditedDemandElement->isValid(SUMO_ATTR_ID, myTextFieldVehicleTypeID->getText().text())) {
1017  myTextFieldVehicleTypeID->setTextColor(FXRGB(0, 0, 0));
1018  myVehicleTypeDialog->myEditedDemandElement->setAttribute(SUMO_ATTR_ID, myTextFieldVehicleTypeID->getText().text(), myVehicleTypeDialog->myEditedDemandElement->getViewNet()->getUndoList());
1019  } else if (myVehicleTypeDialog->myEditedDemandElement->getAttribute(SUMO_ATTR_ID) == myTextFieldVehicleTypeID->getText().text()) {
1020  myTextFieldVehicleTypeID->setTextColor(FXRGB(0, 0, 0));
1021  myVehicleTypeDialog->myEditedDemandElement->setAttribute(SUMO_ATTR_ID, myTextFieldVehicleTypeID->getText().text(), myVehicleTypeDialog->myEditedDemandElement->getViewNet()->getUndoList());
1022  } else {
1023  myTextFieldVehicleTypeID->setTextColor(FXRGB(255, 0, 0));
1024  myVehicleTypeDialog->myVehicleTypeValid = false;
1025  myVehicleTypeDialog->myInvalidAttr = SUMO_ATTR_ID;
1026  }
1027  // set variables of special rows VClass and VShape
1028  SUMOVTypeParameter::VClassDefaultValues defaultVTypeParameters(myVClassRow->setVariable());
1029  // set variables of special rows VShape
1030  myVShapeRow->setVariable();
1031  // set attributes in rest rows
1032  myColor->setVariable();
1033  myLength->setVariable(toString(defaultVTypeParameters.length));
1034  myMinGap->setVariable(toString(defaultVTypeParameters.minGap));
1035  myMaxSpeed->setVariable(toString(defaultVTypeParameters.maxSpeed));
1036  mySpeedFactor->setVariable(toString(defaultVTypeParameters.speedFactor.getParameter()[0]));
1037  mySpeedDev->setVariable(toString(defaultVTypeParameters.speedFactor.getParameter()[1]));
1038  myEmissionClass->setVariable(toString(defaultVTypeParameters.emissionClass));
1039  myWidth->setVariable(toString(defaultVTypeParameters.width));
1040  myHeight->setVariable(toString(defaultVTypeParameters.height));
1041  myOSGFile->setVariable(toString(defaultVTypeParameters.osgFile));
1042  // set attributes in rows
1043  myLaneChangeModel->setVariable();
1044  myLatAlignment->setVariable();
1045  myLength->setVariable(toString(defaultVTypeParameters.length));
1046  myMinGap->setVariable(toString(defaultVTypeParameters.minGap));
1047  myMaxSpeed->setVariable(toString(defaultVTypeParameters.maxSpeed));
1048  mySpeedFactor->setVariable(toString(defaultVTypeParameters.speedFactor.getParameter()[0]));
1049  mySpeedDev->setVariable(toString(defaultVTypeParameters.speedFactor.getParameter()[1]));
1050  myEmissionClass->setVariable(toString(defaultVTypeParameters.emissionClass));
1051  myWidth->setVariable(toString(defaultVTypeParameters.width));
1052  myHeight->setVariable(toString(defaultVTypeParameters.height));
1053  myFilename->setVariable();
1054  myOSGFile->setVariable(toString(defaultVTypeParameters.osgFile));
1055  myPersonCapacity->setVariable(toString(defaultVTypeParameters.personCapacity));
1056  myContainerCapacity->setVariable(toString(defaultVTypeParameters.containerCapacity));
1057  myCarriageLength->setVariable(toString(defaultVTypeParameters.carriageLength));
1058  myLocomotiveLength->setVariable(toString(defaultVTypeParameters.locomotiveLength));
1059  myBoardingDuration->setVariable();
1060  myLoadingDuration->setVariable();
1061  myMinGapLat->setVariable();
1062  myMaxSpeedLat->setVariable();
1063  myActionStepLength->setVariable();
1064  myProbability->setVariable();
1065  myCarriageGap->setVariable();
1066  // JM Variables
1067  myJMCrossingGap->setVariable();
1068  myJMIgnoreKeepclearTime->setVariable();
1069  myJMDriveAfterYellowTime->setVariable();
1070  myJMDriveAfterRedTime->setVariable();
1071  myJMDriveRedSpeed->setVariable();
1072  myJMIgnoreFoeProb->setVariable();
1073  myJMIgnoreFoeSpeed->setVariable();
1074  myJMSigmaMinor->setVariable();
1075  myJMTimeGapMinor->setVariable();
1076  myJMImpatience->setVariable();
1077  // LCM Attributes
1078  myLCAStrategicParam->setVariable();
1079  myLCACooperativeParam->setVariable();
1080  myLCASpeedgainParam->setVariable();
1081  myLCAKeeprightParam->setVariable();
1082  myLCASublaneParam->setVariable();
1083  myLCAOppositeParam->setVariable();
1084  myLCAPushy->setVariable();
1085  myLCAPushygap->setVariable();
1086  myLCAAssertive->setVariable();
1087  myLCAImpatience->setVariable();
1088  myLCATimeToImpatience->setVariable();
1089  myLCAAccelLat->setVariable();
1090  myLCALookAheadLeft->setVariable();
1091  myLCASpeedGainRight->setVariable();
1092  myLCAMaxSpeedLatStanding->setVariable();
1093  myLCAMaxSpeedLatFactor->setVariable();
1094  myLCATurnAlignmentDistance->setVariable();
1095  myLCAOvertakeRight->setVariable();
1096  /* myLCAExperimental->setVariable(); */
1097  return true;
1098 }
1099 
1100 
1101 long
1103  // check what dialog has to be opened
1104  if (obj == myColor->getButton()) {
1105  myColor->openColorDialog();
1106  } else if (obj == myFilename->getButton()) {
1107  myFilename->openImageFileDialog();
1108  } else if (obj == myOSGFile->getButton()) {
1109  myFilename->openOSGFileDialog();
1110  }
1111  return 1;
1112 }
1113 
1114 // ---------------------------------------------------------------------------
1115 // GNEVehicleTypeDialog::VShapeRow - methods
1116 // ---------------------------------------------------------------------------
1117 
1119  FXGroupBox(column, "Car Following Model attributes", GUIDesignGroupBoxFrame),
1120  myVehicleTypeDialog(vehicleTypeDialog) {
1121 
1122  // create vertical frame for rows
1123  myVerticalFrameRows = new FXVerticalFrame(this, GUIDesignAuxiliarFrame);
1124 
1125  // declare combo box
1126  FXHorizontalFrame* row = new FXHorizontalFrame(myVerticalFrameRows, GUIDesignAuxiliarHorizontalFrame);
1127  new FXLabel(row, "Algorithm", nullptr, GUIDesignLabelAttribute150);
1129 
1130  // fill combo Box with all Car following models
1131  std::vector<std::string> CFModels = SUMOXMLDefinitions::CarFollowModels.getStrings();
1132  for (auto i : CFModels) {
1133  myComboBoxCarFollowModel->appendItem(i.c_str());
1134  }
1135  myComboBoxCarFollowModel->setNumVisible(10);
1136 
1137  // 01 create FX and Label for Accel
1139  myRows.push_back(myAccelRow);
1140 
1141  // 02 create FX and Label for Decel
1143  myRows.push_back(myDecelRow);
1144 
1145  // 03 create FX and Label for Apparent decel
1147  myRows.push_back(myApparentDecelRow);
1148 
1149  // 04 create FX and Label for emergency decel
1151  myRows.push_back(myEmergencyDecelRow);
1152 
1153  // 05 create FX and Label for Sigma
1155  myRows.push_back(mySigmaRow);
1156 
1157  // 06 create FX and Label for Tau
1159  myRows.push_back(myTauRow);
1160 
1161  // 07 myMinGapFactor FX and Label for MinGapFactor
1163  myRows.push_back(myMinGapFactorRow);
1164 
1165  // 08 create FX and Label for K
1167  myRows.push_back(myKRow);
1168 
1169  // 09 create FX and Label for PHI
1171  myRows.push_back(myPhiRow);
1172 
1173  // 10 create FX and Label for Deleta
1175  myRows.push_back(myDeltaRow);
1176 
1177  // 11 create FX and Label for Stepping
1179  myRows.push_back(mySteppingRow);
1180 
1181  // 12 create FX and Label for Security
1183  myRows.push_back(mySecurityRow);
1184 
1185  // 13 create FX and Label for Estimation
1187  myRows.push_back(myEstimationRow);
1188 
1189  // 14 create FX and Label for TMP1
1191  myRows.push_back(myTmp1Row);
1192 
1193  // 15 create FX and Label for TMP2
1195  myRows.push_back(myTmp2Row);
1196 
1197  // 16 create FX and Label for TMP3
1199  myRows.push_back(myTmp3Row);
1200 
1201  // 17 create FX and Label for TMP4
1203  myRows.push_back(myTmp4Row);
1204 
1205  // 18 create FX and Label for TMP5
1207  myRows.push_back(myTmp5Row);
1208 
1209  // 19 create FX and Label for trainType (allow strings)
1211  myRows.push_back(myTrainTypeRow);
1212 
1213  // 20 create FX and Label for Tau Last
1215  myRows.push_back(myTrauLastRow);
1216 
1217  // 21 create FX and Label for Aprob
1219  myRows.push_back(myAprobRow);
1220 
1221  // 22 create FX and Label for Adapt Factor
1223  myRows.push_back(myAdaptFactorRow);
1224 
1225  // 23 create FX and Label for Adapt Time
1227  myRows.push_back(myAdaptTimeRow);
1228 
1229  // create myLabelIncompleteAttribute
1230  myLabelIncompleteAttribute = new FXLabel(myVerticalFrameRows, "Some attributes wasn't\nimplemented yet", nullptr, GUIDesignLabelAboutInfoCenter);
1232 
1233  // show or hidde ComboBox depending of current selected CFM
1234  refreshCFMFields();
1235 }
1236 
1237 
1238 void
1240  // start hidding all rows
1241  for (const auto& i : myRows) {
1242  i->hide();
1243  }
1244  // hide myLabelIncompleteAttribute
1245  myLabelIncompleteAttribute->hide();
1246  // show textfield depending of current CFM
1247  if (SUMOXMLDefinitions::CarFollowModels.hasString(myComboBoxCarFollowModel->getText().text())) {
1248  // show textfield depending of selected CFM
1249  switch (SUMOXMLDefinitions::CarFollowModels.get(myComboBoxCarFollowModel->getText().text())) {
1250  case SUMO_TAG_CF_KRAUSS:
1253  myTauRow->show();
1254  myAccelRow->show();
1255  myDecelRow->show();
1256  myApparentDecelRow->show();
1257  myEmergencyDecelRow->show();
1258  mySigmaRow->show();
1259  break;
1260  case SUMO_TAG_CF_KRAUSSX:
1261  myTauRow->show();
1262  myTmp1Row->show();
1263  myTmp2Row->show();
1264  myTmp3Row->show();
1265  myTmp4Row->show();
1266  myTmp5Row->show();
1267  break;
1268  case SUMO_TAG_CF_SMART_SK:
1269  case SUMO_TAG_CF_DANIEL1:
1270  myTauRow->show();
1271  myAccelRow->show();
1272  myDecelRow->show();
1273  myEmergencyDecelRow->show();
1274  mySigmaRow->show();
1275  myMinGapFactorRow->show();
1276  myTmp1Row->show();
1277  myTmp2Row->show();
1278  myTmp3Row->show();
1279  myTmp4Row->show();
1280  myTmp5Row->show();
1281  break;
1283  myTauRow->show();
1284  myAccelRow->show();
1285  myDecelRow->show();
1286  myEmergencyDecelRow->show();
1287  mySigmaRow->show();
1288  myMinGapFactorRow->show();
1289  myTrauLastRow->show();
1290  myAprobRow->show();
1291  break;
1292  case SUMO_TAG_CF_IDM:
1293  myTauRow->show();
1294  myAccelRow->show();
1295  myDecelRow->show();
1296  myEmergencyDecelRow->show();
1297  mySteppingRow->show();
1298  myMinGapFactorRow->show();
1299  break;
1300  case SUMO_TAG_CF_IDMM:
1301  myTauRow->show();
1302  myAccelRow->show();
1303  myDecelRow->show();
1304  myEmergencyDecelRow->show();
1305  mySteppingRow->show();
1306  myMinGapFactorRow->show();
1307  myAdaptFactorRow->show();
1308  myAdaptTimeRow->show();
1309  break;
1310  case SUMO_TAG_CF_BKERNER:
1311  myTauRow->show();
1312  myAccelRow->show();
1313  myDecelRow->show();
1314  myEmergencyDecelRow->show();
1315  myKRow->show();
1316  myPhiRow->show();
1317  myMinGapFactorRow->show();
1318  break;
1319  case SUMO_TAG_CF_WIEDEMANN:
1320  myTauRow->show();
1321  myAccelRow->show();
1322  myDecelRow->show();
1323  myEmergencyDecelRow->show();
1324  myMinGapFactorRow->show();
1325  mySecurityRow->show();
1326  myEstimationRow->show();
1327  break;
1328  case SUMO_TAG_CF_RAIL:
1329  myTauRow->show();
1330  myTrainTypeRow->show();
1331  break;
1332  case SUMO_TAG_CF_ACC:
1333  myTauRow->show();
1334  myAccelRow->show();
1335  myDecelRow->show();
1336  myEmergencyDecelRow->show();
1337  myMinGapFactorRow->show();
1338  // show myLabelIncompleteAttribute
1339  myLabelIncompleteAttribute->show();
1350  break;
1351  case SUMO_TAG_CF_CACC:
1352  myTauRow->show();
1353  myAccelRow->show();
1354  myDecelRow->show();
1355  myEmergencyDecelRow->show();
1356  myMinGapFactorRow->show();
1357  // show myLabelIncompleteAttribute
1358  myLabelIncompleteAttribute->show();
1375  break;
1376  case SUMO_TAG_CF_CC:
1377  myTauRow->show();
1378  myAccelRow->show();
1379  myDecelRow->show();
1380  // show myLabelIncompleteAttribute
1381  myLabelIncompleteAttribute->show();
1403  break;
1404  default:
1405  break;
1406  }
1407  }
1408  myVerticalFrameRows->recalc();
1409  update();
1410 }
1411 
1412 
1413 void
1415  //set values of myEditedDemandElement into fields
1416  if (myVehicleTypeDialog->myEditedDemandElement->getAttribute(SUMO_ATTR_CAR_FOLLOW_MODEL).empty()) {
1417  myComboBoxCarFollowModel->setCurrentItem(0);
1418  } else {
1419  myComboBoxCarFollowModel->setText(myVehicleTypeDialog->myEditedDemandElement->getAttribute(SUMO_ATTR_CAR_FOLLOW_MODEL).c_str());
1420  }
1421  // refresh fields
1422  refreshCFMFields();
1423  // update value in all Rows
1424  for (const auto& i : myRows) {
1425  i->updateValue();
1426  }
1427 }
1428 
1429 
1430 long
1432  // At start we assumed, that all values are valid
1433  myVehicleTypeDialog->myVehicleTypeValid = true;
1434  myVehicleTypeDialog->myInvalidAttr = SUMO_ATTR_NOTHING;
1435  // set color of myTextFieldCarFollowModel, depending if current value is valid or not
1436  if (myVehicleTypeDialog->myEditedDemandElement->isValid(SUMO_ATTR_CAR_FOLLOW_MODEL, myComboBoxCarFollowModel->getText().text())) {
1437  myComboBoxCarFollowModel->setTextColor(FXRGB(0, 0, 0));
1438  myVehicleTypeDialog->myEditedDemandElement->setAttribute(SUMO_ATTR_CAR_FOLLOW_MODEL, myComboBoxCarFollowModel->getText().text(), myVehicleTypeDialog->myEditedDemandElement->getViewNet()->getUndoList());
1439  } else {
1440  myComboBoxCarFollowModel->setTextColor(FXRGB(255, 0, 0));
1441  myVehicleTypeDialog->myVehicleTypeValid = false;
1442  myVehicleTypeDialog->myInvalidAttr = SUMO_ATTR_CAR_FOLLOW_MODEL;
1443  }
1444  // set variable in all Rows
1445  for (const auto& i : myRows) {
1446  i->setVariable();
1447  }
1448  // refresh fields
1449  refreshCFMFields();
1450  return true;
1451 }
1452 
1453 // ---------------------------------------------------------------------------
1454 // GNEVehicleTypeDialog - public methods
1455 // ---------------------------------------------------------------------------
1456 
1457 GNEVehicleTypeDialog::GNEVehicleTypeDialog(GNEDemandElement* editedVehicleType, bool updatingElement) :
1458  GNEDemandElementDialog(editedVehicleType, updatingElement, /*1022*/ /*1322*/ 1372, 575),
1459  myVehicleTypeValid(true),
1461 
1462  // change default header
1463  changeDemandElementDialogHeader(updatingElement ? "Edit " + myEditedDemandElement->getTagStr() : "Create " + myEditedDemandElement->getTagStr());
1464 
1465  // Create auxiliar frames for values
1466  FXHorizontalFrame* columns = new FXHorizontalFrame(myContentFrame, GUIDesignAuxiliarHorizontalFrame);
1467 
1468  // create vehicle type attributes
1469  myVTypeAtributes = new VTypeAtributes(this, columns);
1470 
1471  // create car following model parameters
1473 
1474  // start a undo list for editing local to this additional
1475  initChanges();
1476 
1477  // add element if we aren't updating an existent element
1478  if (myUpdatingElement == false) {
1480  }
1481 
1482  // update values of Vehicle Type common attributes
1484 
1485  // update values of Car Following Model Parameters
1487 
1488  // open as modal dialog
1490 }
1491 
1492 
1494 
1495 
1496 long
1497 GNEVehicleTypeDialog::onCmdAccept(FXObject*, FXSelector, void*) {
1498  if (myVehicleTypeValid == false) {
1499  // write warning if netedit is running in testing mode
1500  WRITE_DEBUG("Opening FXMessageBox of type 'warning'");
1501  std::string operation1 = myUpdatingElement ? ("updating") : ("creating");
1502  std::string operation2 = myUpdatingElement ? ("updated") : ("created");
1503  std::string tagString = myEditedDemandElement->getTagStr();
1504  // open warning dialogBox
1505  FXMessageBox::warning(getApp(), MBOX_OK,
1506  ("Error " + operation1 + " " + tagString).c_str(), "%s",
1507  (tagString + " cannot be " + operation2 +
1508  " because parameter " + toString(myInvalidAttr) +
1509  " is invalid.").c_str());
1510  // write warning if netedit is running in testing mode
1511  WRITE_DEBUG("Closed FXMessageBox of type 'warning' with 'OK'");
1512  return 0;
1513  } else {
1514  // accept changes before closing dialog
1515  acceptChanges();
1516  // stop dialgo sucesfully
1517  getApp()->stopModal(this, TRUE);
1518  return 1;
1519  }
1520 }
1521 
1522 
1523 long
1524 GNEVehicleTypeDialog::onCmdCancel(FXObject*, FXSelector, void*) {
1525  // cancel changes
1526  cancelChanges();
1527  // Stop Modal
1528  getApp()->stopModal(this, FALSE);
1529  return 1;
1530 }
1531 
1532 
1533 long
1534 GNEVehicleTypeDialog::onCmdReset(FXObject*, FXSelector, void*) {
1535  // reset changes
1536  resetChanges();
1537  // update values of Vehicle Type common attributes
1539  // update values of Car Following Model Parameters
1541  return 1;
1542 }
1543 
1544 // ---------------------------------------------------------------------------
1545 // GNEVehicleTypeDialog - private methods
1546 // ---------------------------------------------------------------------------
1547 
1549  FXHorizontalFrame(verticalFrame, GUIDesignAuxiliarHorizontalFrame),
1550  myCarFollowingModelParametersParent(carFollowingModelParametersParent),
1551  myAttr(attr),
1552  myTextField(nullptr) {
1553  new FXLabel(this, toString(attr).c_str(), nullptr, GUIDesignLabelAttribute150);
1554  myTextField = new FXTextField(this, GUIDesignTextFieldNCol, carFollowingModelParametersParent, MID_GNE_SET_ATTRIBUTE, GUIDesignTextFielWidth180);
1555 }
1556 
1557 
1558 void
1560  // set color of textField, depending if current value is valid or not
1561  if (myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, myTextField->getText().text())) {
1562  // set color depending if is a default value
1563  if (myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty().getDefaultValue(myAttr) != myTextField->getText().text()) {
1564  myTextField->setTextColor(FXRGB(0, 0, 0));
1565  } else {
1566  myTextField->setTextColor(FXRGB(195, 195, 195));
1567  }
1568  myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, myTextField->getText().text(),
1569  myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->getViewNet()->getUndoList());
1570  // update value after setting it
1571  updateValue();
1572  } else {
1573  myTextField->setTextColor(FXRGB(255, 0, 0));
1574  // mark VType as invalid
1575  myCarFollowingModelParametersParent->myVehicleTypeDialog->myVehicleTypeValid = false;
1576  myCarFollowingModelParametersParent->myVehicleTypeDialog->myInvalidAttr = myAttr;
1577  }
1578 }
1579 
1580 
1581 void
1583  // set text of myTextField using current value of VType
1584  myTextField->setText(myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
1585  // set color depending if is a default value
1586  if (myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty().getDefaultValue(myAttr) != myTextField->getText().text()) {
1587  myTextField->setTextColor(FXRGB(0, 0, 0));
1588  } else {
1589  myTextField->setTextColor(FXRGB(195, 195, 195));
1590  }
1591 }
1592 
1593 /****************************************************************************/
GNEVehicleTypeDialog::VTypeAtributes::updateValues
void updateValues()
update values
Definition: GNEVehicleTypeDialog.cpp:945
GNEVehicleTypeDialog::VTypeAtributes::VClassRow::myComboBoxVClass
FXComboBox * myComboBoxVClass
FXComboBox for VClass.
Definition: GNEVehicleTypeDialog.h:71
SVC_RAIL_FAST
@ SVC_RAIL_FAST
vehicle that is allowed to drive on high-speed rail tracks
Definition: SUMOVehicleClass.h:192
GNEVehicleTypeDialog::VTypeAtributes::buildLaneChangeModelAttributes
void buildLaneChangeModelAttributes(FXVerticalFrame *column)
build LaneChangeModel attributes
Definition: GNEVehicleTypeDialog.cpp:884
SUMO_ATTR_MAXSPEED
@ SUMO_ATTR_MAXSPEED
Definition: SUMOXMLDefinitions.h:441
GNEVehicleTypeDialog::CarFollowingModelParameters::CarFollowingModelRow::setVariable
void setVariable()
set Variablen in VehicleType
Definition: GNEVehicleTypeDialog.cpp:1559
GNEVehicleTypeDialog::VTypeAtributes::myVehicleTypeDialog
GNEVehicleTypeDialog * myVehicleTypeDialog
VTypeAttributeRow for experimental.
Definition: GNEVehicleTypeDialog.h:390
GNEDemandElement::isAttributeEnabled
virtual bool isAttributeEnabled(SumoXMLAttr key) const =0
SUMO_ATTR_OSGFILE
@ SUMO_ATTR_OSGFILE
Definition: SUMOXMLDefinitions.h:791
GUIDesignLabelAboutInfoCenter
#define GUIDesignLabelAboutInfoCenter
label extended over frame with thick and with text justify to center
Definition: GUIDesigns.h:179
SUMO_ATTR_BOARDING_DURATION
@ SUMO_ATTR_BOARDING_DURATION
Definition: SUMOXMLDefinitions.h:460
GUIDesignAuxiliarHorizontalFrame
#define GUIDesignAuxiliarHorizontalFrame
design for auxiliar (Without borders) horizontal frame used to pack another frames
Definition: GUIDesigns.h:273
ICON_VSHAPE_E_VEHICLE
@ ICON_VSHAPE_E_VEHICLE
Definition: GUIIcons.h:373
SUMO_ATTR_LCA_SPEEDGAIN_PARAM
@ SUMO_ATTR_LCA_SPEEDGAIN_PARAM
Definition: SUMOXMLDefinitions.h:590
SVC_PEDESTRIAN
@ SVC_PEDESTRIAN
pedestrian
Definition: SUMOVehicleClass.h:156
GNEVehicleTypeDialog::CarFollowingModelParameters::myDeltaRow
CarFollowingModelRow * myDeltaRow
Row for MinGap (only for IDM)
Definition: GNEVehicleTypeDialog.h:481
SUMOVehicleClass
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
Definition: SUMOVehicleClass.h:133
SUMOXMLDefinitions::LaneChangeModels
static StringBijection< LaneChangeModel > LaneChangeModels
lane change models
Definition: SUMOXMLDefinitions.h:1395
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::updateValue
void updateValue()
update value of Vehicle Type (using default value obtained from GNEAttributeCarrier)
Definition: GNEVehicleTypeDialog.cpp:513
SUMO_ATTR_CF_WIEDEMANN_ESTIMATION
@ SUMO_ATTR_CF_WIEDEMANN_ESTIMATION
Definition: SUMOXMLDefinitions.h:842
ICON_VCLASS_EVEHICLE
@ ICON_VCLASS_EVEHICLE
Definition: GUIIcons.h:345
GNEDemandElementDialog::acceptChanges
void acceptChanges()
Accept changes did in this dialog.
Definition: GNEDemandElementDialog.cpp:124
GNEDemandElement
An Element which don't belongs to GNENet but has influency in the simulation.
Definition: GNEDemandElement.h:55
SUMOVTypeParameter::VClassDefaultValues::carriageLength
double carriageLength
the length of train carriages
Definition: SUMOVTypeParameter.h:127
GNEVehicleTypeDialog::VTypeAtributes::VClassRow::setVariable
SUMOVehicleClass setVariable()
set vehicle class
Definition: GNEVehicleTypeDialog.cpp:85
SVC_E_VEHICLE
@ SVC_E_VEHICLE
is an electric vehicle
Definition: SUMOVehicleClass.h:181
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::ROWTYPE_COMBOBOX
@ ROWTYPE_COMBOBOX
Definition: GNEVehicleTypeDialog.h:117
ICON_VCLASS_TRAILER
@ ICON_VCLASS_TRAILER
Definition: GUIIcons.h:336
GUIDesignLabelAttribute150
#define GUIDesignLabelAttribute150
label extended over the matrix column with thick frame and height of 23
Definition: GUIDesigns.h:173
GUIDesignTextFieldNCol
#define GUIDesignTextFieldNCol
Num of column of text field.
Definition: GUIDesigns.h:42
GNEVehicleTypeDialog::onCmdReset
long onCmdReset(FXObject *, FXSelector, void *)
event after press reset button
Definition: GNEVehicleTypeDialog.cpp:1534
GNEVehicleTypeDialog::VTypeAtributes::VTypeAtributes
VTypeAtributes(GNEVehicleTypeDialog *vehicleTypeDialog, FXHorizontalFrame *column)
constructor
Definition: GNEVehicleTypeDialog.cpp:725
GNEChange_DemandElement
Definition: GNEChange_DemandElement.h:45
GNEVehicleTypeDialog::VTypeAtributes::VClassRow::setVClassLabelImage
void setVClassLabelImage()
set VClass texture
Definition: GNEVehicleTypeDialog.cpp:158
SUMO_ATTR_JM_IGNORE_KEEPCLEAR_TIME
@ SUMO_ATTR_JM_IGNORE_KEEPCLEAR_TIME
Definition: SUMOXMLDefinitions.h:617
SVC_EMERGENCY
@ SVC_EMERGENCY
public emergency vehicles
Definition: SUMOVehicleClass.h:143
GNEVehicleTypeDialog::VTypeAtributes::myContainerCapacity
VTypeAttributeRow * myContainerCapacity
VTypeAttributeRow for ContainerCapacity.
Definition: GNEVehicleTypeDialog.h:265
GNEDemandElement::getVClass
virtual SUMOVehicleClass getVClass() const =0
obtain VClass related with this demand element
SUMO_ATTR_IMGFILE
@ SUMO_ATTR_IMGFILE
Definition: SUMOXMLDefinitions.h:792
GNEVehicleTypeDialog::CarFollowingModelParameters::myTmp2Row
CarFollowingModelRow * myTmp2Row
Row for TMP2.
Definition: GNEVehicleTypeDialog.h:496
SUMO_ATTR_MINGAP_LAT
@ SUMO_ATTR_MINGAP_LAT
Definition: SUMOXMLDefinitions.h:444
GNEVehicleTypeDialog::VTypeAtributes::buildAttributesB
void buildAttributesB(FXVerticalFrame *column)
build commmon attributes (B)
Definition: GNEVehicleTypeDialog.cpp:803
SUMO_ATTR_CF_IDMM_ADAPT_FACTOR
@ SUMO_ATTR_CF_IDMM_ADAPT_FACTOR
Definition: SUMOXMLDefinitions.h:838
GNEVehicleTypeDialog::CarFollowingModelParameters::myTrauLastRow
CarFollowingModelRow * myTrauLastRow
Row for TauLast.
Definition: GNEVehicleTypeDialog.h:511
SVS_MOTORCYCLE
@ SVS_MOTORCYCLE
render as a motorcycle
Definition: SUMOVehicleClass.h:60
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::RowAttrType
RowAttrType
Attribute type.
Definition: GNEVehicleTypeDialog.h:113
GUIDesignTextFielWidth180
#define GUIDesignTextFielWidth180
text field with thick frame, size of 180x23 /doubles (Used in GNEVehicleType)
Definition: GUIDesigns.h:39
GNEVehicleTypeDialog::CarFollowingModelParameters::myAccelRow
CarFollowingModelRow * myAccelRow
Row for Accel.
Definition: GNEVehicleTypeDialog.h:454
SVC_COACH
@ SVC_COACH
vehicle is a coach
Definition: SUMOVehicleClass.h:167
GNEVehicleTypeDialog::VTypeAtributes::myCarriageLength
VTypeAttributeRow * myCarriageLength
VTypeAttributeRow for carriage length.
Definition: GNEVehicleTypeDialog.h:250
SUMO_ATTR_LATALIGNMENT
@ SUMO_ATTR_LATALIGNMENT
Definition: SUMOXMLDefinitions.h:443
SUMO_ATTR_LENGTH
@ SUMO_ATTR_LENGTH
Definition: SUMOXMLDefinitions.h:393
GNEChange_DemandElement.h
ICON_VSHAPE_POLICE
@ ICON_VSHAPE_POLICE
Definition: GUIIcons.h:378
SUMO_ATTR_LCA_COOPERATIVE_PARAM
@ SUMO_ATTR_LCA_COOPERATIVE_PARAM
Definition: SUMOXMLDefinitions.h:589
SUMO_ATTR_CF_IDM_STEPPING
@ SUMO_ATTR_CF_IDM_STEPPING
Definition: SUMOXMLDefinitions.h:837
GNEVehicleTypeDialog::CarFollowingModelParameters::CarFollowingModelRow
class used for represent rows with Car Following Model parameters
Definition: GNEVehicleTypeDialog.h:418
SUMO_TAG_CF_KRAUSS_ORIG1
@ SUMO_TAG_CF_KRAUSS_ORIG1
Definition: SUMOXMLDefinitions.h:277
GNEVehicleTypeDialog::CarFollowingModelParameters::myAdaptFactorRow
CarFollowingModelRow * myAdaptFactorRow
Row for Adapt Factor.
Definition: GNEVehicleTypeDialog.h:517
SUMO_ATTR_MAXSPEED_LAT
@ SUMO_ATTR_MAXSPEED_LAT
Definition: SUMOXMLDefinitions.h:442
SUMOVTypeParameter::VClassDefaultValues::emissionClass
SUMOEmissionClass emissionClass
The emission class of this vehicle.
Definition: SUMOVTypeParameter.h:112
SVS_BUS_TROLLEY
@ SVS_BUS_TROLLEY
render as a trolley bus
Definition: SUMOVehicleClass.h:88
ICON_VCLASS_CUSTOM1
@ ICON_VCLASS_CUSTOM1
Definition: GUIIcons.h:347
RGBColor::BLACK
static const RGBColor BLACK
Definition: RGBColor.h:197
SVC_CUSTOM2
@ SVC_CUSTOM2
is a user-defined type
Definition: SUMOVehicleClass.h:200
SUMO_ATTR_TMP2
@ SUMO_ATTR_TMP2
Definition: SUMOXMLDefinitions.h:551
GNEVehicleTypeDialog::VTypeAtributes::VShapeRow::setVShapeLabelImage
void setVShapeLabelImage()
set VShape texture
Definition: GNEVehicleTypeDialog.cpp:301
SUMO_ATTR_SPEEDFACTOR
@ SUMO_ATTR_SPEEDFACTOR
Definition: SUMOXMLDefinitions.h:454
SUMO_TAG_CF_CACC
@ SUMO_TAG_CF_CACC
Definition: SUMOXMLDefinitions.h:288
ICON_VSHAPE_PEDESTRIAN
@ ICON_VSHAPE_PEDESTRIAN
Definition: GUIIcons.h:353
GNEVehicleTypeDialog::VTypeAtributes::myLocomotiveLength
VTypeAttributeRow * myLocomotiveLength
VTypeAttributeRow for locomotive length.
Definition: GNEVehicleTypeDialog.h:253
SUMO_TAG_CF_RAIL
@ SUMO_TAG_CF_RAIL
Definition: SUMOXMLDefinitions.h:289
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::openOSGFileDialog
void openOSGFileDialog()
open OSG file dialog
Definition: GNEVehicleTypeDialog.cpp:628
SUMO_ATTR_JM_DRIVE_AFTER_YELLOW_TIME
@ SUMO_ATTR_JM_DRIVE_AFTER_YELLOW_TIME
Definition: SUMOXMLDefinitions.h:614
SUMO_ATTR_TMP1
@ SUMO_ATTR_TMP1
Definition: SUMOXMLDefinitions.h:550
SUMO_TAG_CF_IDMM
@ SUMO_TAG_CF_IDMM
Definition: SUMOXMLDefinitions.h:282
StringBijection::getStrings
std::vector< std::string > getStrings() const
Definition: StringBijection.h:131
ICON_VCLASS_SHIP
@ ICON_VCLASS_SHIP
Definition: GUIIcons.h:346
SUMO_ATTR_CF_PWAGNER2009_APPROB
@ SUMO_ATTR_CF_PWAGNER2009_APPROB
Definition: SUMOXMLDefinitions.h:835
ICON_VCLASS_RAIL
@ ICON_VCLASS_RAIL
Definition: GUIIcons.h:339
GUIDesignComboBoxNCol
#define GUIDesignComboBoxNCol
number of column of every combo box
Definition: GUIDesigns.h:217
GNEVehicleTypeDialog::CarFollowingModelParameters::myTmp5Row
CarFollowingModelRow * myTmp5Row
Row for TMP5.
Definition: GNEVehicleTypeDialog.h:505
SUMO_ATTR_LOADING_DURATION
@ SUMO_ATTR_LOADING_DURATION
Definition: SUMOXMLDefinitions.h:461
SUMO_TAG_CF_KRAUSS
@ SUMO_TAG_CF_KRAUSS
Definition: SUMOXMLDefinitions.h:275
SVS_TRUCK
@ SVS_TRUCK
render as a transport vehicle
Definition: SUMOVehicleClass.h:76
SUMO_ATTR_COLOR
@ SUMO_ATTR_COLOR
A color information.
Definition: SUMOXMLDefinitions.h:704
SVC_BICYCLE
@ SVC_BICYCLE
vehicle is a bicycle
Definition: SUMOVehicleClass.h:179
GNEVehicleTypeDialog::CarFollowingModelParameters::myTrainTypeRow
CarFollowingModelRow * myTrainTypeRow
Row for TrainType.
Definition: GNEVehicleTypeDialog.h:508
SVC_DELIVERY
@ SVC_DELIVERY
vehicle is a small delivery vehicle
Definition: SUMOVehicleClass.h:169
GNEVehicleTypeDialog::CarFollowingModelParameters::myComboBoxCarFollowModel
FXComboBox * myComboBoxCarFollowModel
Row for CarFollowModel.
Definition: GNEVehicleTypeDialog.h:448
GNEVehicleTypeDialog::CarFollowingModelParameters::myEmergencyDecelRow
CarFollowingModelRow * myEmergencyDecelRow
Row for emergency Decel.
Definition: GNEVehicleTypeDialog.h:463
ICON_VCLASS_BUS
@ ICON_VCLASS_BUS
Definition: GUIIcons.h:332
Distribution_Parameterized::getParameter
std::vector< double > & getParameter()
Returns the parameters of this distribution.
Definition: Distribution_Parameterized.cpp:110
SUMO_ATTR_CONTAINER_CAPACITY
@ SUMO_ATTR_CONTAINER_CAPACITY
Definition: SUMOXMLDefinitions.h:650
GNEVehicleTypeDialog::CarFollowingModelParameters::myTmp4Row
CarFollowingModelRow * myTmp4Row
Row for TMP4.
Definition: GNEVehicleTypeDialog.h:502
SUMO_ATTR_SPEEDDEV
@ SUMO_ATTR_SPEEDDEV
Definition: SUMOXMLDefinitions.h:455
SUMO_ATTR_ID
@ SUMO_ATTR_ID
Definition: SUMOXMLDefinitions.h:378
GNEVehicleTypeDialog::CarFollowingModelParameters::updateValues
void updateValues()
update values
Definition: GNEVehicleTypeDialog.cpp:1414
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::filterAttributeName
FXString filterAttributeName(const SumoXMLAttr attr) const
filter attribute name
Definition: GNEVehicleTypeDialog.cpp:655
GNEDemandElement::getViewNet
GNEViewNet * getViewNet() const
Returns a pointer to GNEViewNet in which demand element element is located.
Definition: GNEDemandElement.cpp:253
ICON_VCLASS_VIP
@ ICON_VCLASS_VIP
Definition: GUIIcons.h:328
FXDEFMAP
FXDEFMAP(GNEVehicleTypeDialog::VTypeAtributes) VTypeAtributesMap[]
GNEVehicleTypeDialog::VTypeAtributes::VShapeRow::VShapeRow
VShapeRow(VTypeAtributes *VTypeAtributesParent, FXVerticalFrame *column)
constructor
Definition: GNEVehicleTypeDialog.cpp:254
GUIDesigns.h
SUMO_ATTR_CF_IDM_DELTA
@ SUMO_ATTR_CF_IDM_DELTA
Definition: SUMOXMLDefinitions.h:836
SUMOVTypeParameter::VClassDefaultValues::length
double length
The physical vehicle length.
Definition: SUMOVTypeParameter.h:94
GNEDemandElement::isValid
virtual bool isValid(SumoXMLAttr key, const std::string &value)=0
method for checking if the key and their conrrespond attribute are valids
MID_GNE_SET_ATTRIBUTE
@ MID_GNE_SET_ATTRIBUTE
attribute edited
Definition: GUIAppEnum.h:646
SUMO_ATTR_LCA_MAXSPEEDLATFACTOR
@ SUMO_ATTR_LCA_MAXSPEEDLATFACTOR
Definition: SUMOXMLDefinitions.h:603
SUMO_ATTR_LCA_KEEPRIGHT_PARAM
@ SUMO_ATTR_LCA_KEEPRIGHT_PARAM
Definition: SUMOXMLDefinitions.h:591
GUIIconSubSys::getIcon
static FXIcon * getIcon(GUIIcon which)
returns a icon previously defined in the enum GUIIcon
Definition: GUIIconSubSys.cpp:609
GNEVehicleTypeDialog::CarFollowingModelParameters::mySigmaRow
CarFollowingModelRow * mySigmaRow
Row for Sigma.
Definition: GNEVehicleTypeDialog.h:466
SUMO_ATTR_LANE_CHANGE_MODEL
@ SUMO_ATTR_LANE_CHANGE_MODEL
Definition: SUMOXMLDefinitions.h:456
ICON_VSHAPE_ANT
@ ICON_VSHAPE_ANT
Definition: GUIIcons.h:374
SUMO_ATTR_TMP5
@ SUMO_ATTR_TMP5
Definition: SUMOXMLDefinitions.h:554
GNEVehicleTypeDialog::VTypeAtributes::myOSGFile
VTypeAttributeRow * myOSGFile
VTypeAttributeRow for OSG.
Definition: GNEVehicleTypeDialog.h:247
SUMO_ATTR_TMP3
@ SUMO_ATTR_TMP3
Definition: SUMOXMLDefinitions.h:552
SVC_RAIL
@ SVC_RAIL
vehicle is a not electrified rail
Definition: SUMOVehicleClass.h:188
GNEVehicleTypeDialog::CarFollowingModelParameters::myKRow
CarFollowingModelRow * myKRow
Row for MinGap (only for Kerner)
Definition: GNEVehicleTypeDialog.h:475
SVC_RAIL_URBAN
@ SVC_RAIL_URBAN
vehicle is a city rail
Definition: SUMOVehicleClass.h:186
ICON_VSHAPE_TRUCK_1TRAILER
@ ICON_VSHAPE_TRUCK_1TRAILER
Definition: GUIIcons.h:365
GNEDemandElementDialog::cancelChanges
void cancelChanges()
Cancel changes did in this dialog.
Definition: GNEDemandElementDialog.cpp:135
SVC_AUTHORITY
@ SVC_AUTHORITY
authorities vehicles
Definition: SUMOVehicleClass.h:145
SUMO_ATTR_JM_IGNORE_FOE_PROB
@ SUMO_ATTR_JM_IGNORE_FOE_PROB
Definition: SUMOXMLDefinitions.h:619
GNEVehicleTypeDialog::VTypeAtributes::myHeight
VTypeAttributeRow * myHeight
VTypeAttributeRow for Height.
Definition: GNEVehicleTypeDialog.h:241
SUMO_ATTR_JM_TIMEGAP_MINOR
@ SUMO_ATTR_JM_TIMEGAP_MINOR
Definition: SUMOXMLDefinitions.h:621
ICON_VSHAPE_BUS
@ ICON_VSHAPE_BUS
Definition: GUIIcons.h:366
GNEVehicleTypeDialog::myVTypeAtributes
VTypeAtributes * myVTypeAtributes
Vehicle Type Common Attributes.
Definition: GNEVehicleTypeDialog.h:555
SUMO_TAG_CF_IDM
@ SUMO_TAG_CF_IDM
Definition: SUMOXMLDefinitions.h:281
ICON_VSHAPE_MOTORCYCLE
@ ICON_VSHAPE_MOTORCYCLE
Definition: GUIIcons.h:356
SVS_BUS_FLEXIBLE
@ SVS_BUS_FLEXIBLE
render as a flexible city bus
Definition: SUMOVehicleClass.h:86
SUMO_TAG_CF_KRAUSSX
@ SUMO_TAG_CF_KRAUSSX
Definition: SUMOXMLDefinitions.h:278
GNEVehicleTypeDialog::CarFollowingModelParameters::myPhiRow
CarFollowingModelRow * myPhiRow
Row for MinGap (only for Kerner)
Definition: GNEVehicleTypeDialog.h:478
MFXUtils::getRGBColor
static RGBColor getRGBColor(FXColor col)
converts FXColor to RGBColor
Definition: MFXUtils.cpp:107
SVS_PASSENGER_SEDAN
@ SVS_PASSENGER_SEDAN
render as a sedan passenger vehicle ("Stufenheck")
Definition: SUMOVehicleClass.h:64
SumoVehicleClassStrings
StringBijection< SUMOVehicleClass > SumoVehicleClassStrings(sumoVehicleClassStringInitializer, SVC_CUSTOM2, false)
SUMO_ATTR_JM_IGNORE_FOE_SPEED
@ SUMO_ATTR_JM_IGNORE_FOE_SPEED
Definition: SUMOXMLDefinitions.h:618
GUIAppEnum.h
SVC_PRIVATE
@ SVC_PRIVATE
private vehicles
Definition: SUMOVehicleClass.h:141
ICON_VSHAPE_RAIL
@ ICON_VSHAPE_RAIL
Definition: GUIIcons.h:370
ICON_VSHAPE_BICYCLE
@ ICON_VSHAPE_BICYCLE
Definition: GUIIcons.h:354
GNEVehicleTypeDialog::VTypeAtributes::mySpeedDev
VTypeAttributeRow * mySpeedDev
VTypeAttributeRow for SpeedDev.
Definition: GNEVehicleTypeDialog.h:229
ICON_VCLASS_TRUCK
@ ICON_VCLASS_TRUCK
Definition: GUIIcons.h:335
SVS_UNKNOWN
@ SVS_UNKNOWN
not defined
Definition: SUMOVehicleClass.h:52
GNEVehicleTypeDialog::CarFollowingModelParameters::myTauRow
CarFollowingModelRow * myTauRow
Row for Tau.
Definition: GNEVehicleTypeDialog.h:469
SUMO_TAG_CF_CC
@ SUMO_TAG_CF_CC
Definition: SUMOXMLDefinitions.h:290
SUMOXMLDefinitions::CarFollowModels
static StringBijection< SumoXMLTag > CarFollowModels
car following models
Definition: SUMOXMLDefinitions.h:1398
GNEVehicleTypeDialog::CarFollowingModelParameters::mySteppingRow
CarFollowingModelRow * mySteppingRow
Row for MinGap(only for IDM)
Definition: GNEVehicleTypeDialog.h:484
SUMO_ATTR_LCA_PUSHYGAP
@ SUMO_ATTR_LCA_PUSHYGAP
Definition: SUMOXMLDefinitions.h:595
GNEVehicleTypeDialog::VTypeAtributes::VShapeRow::setVariable
void setVariable()
set variables
Definition: GNEVehicleTypeDialog.cpp:278
SUMO_ATTR_LCA_MAXSPEEDLATSTANDING
@ SUMO_ATTR_LCA_MAXSPEEDLATSTANDING
Definition: SUMOXMLDefinitions.h:602
SVS_BICYCLE
@ SVS_BICYCLE
render as a bicycle
Definition: SUMOVehicleClass.h:56
GNEVehicleTypeDialog::VTypeAtributes::VShapeRow
class for VShapeRow
Definition: GNEVehicleTypeDialog.h:81
SVC_TRAM
@ SVC_TRAM
vehicle is a light rail
Definition: SUMOVehicleClass.h:184
ICON_VCLASS_EMERGENCY
@ ICON_VCLASS_EMERGENCY
Definition: GUIIcons.h:325
GNEVehicleTypeDialog::~GNEVehicleTypeDialog
~GNEVehicleTypeDialog()
destructor
Definition: GNEVehicleTypeDialog.cpp:1493
SUMO_ATTR_LCA_SUBLANE_PARAM
@ SUMO_ATTR_LCA_SUBLANE_PARAM
Definition: SUMOXMLDefinitions.h:592
ICON_VCLASS_DELIVERY
@ ICON_VCLASS_DELIVERY
Definition: GUIIcons.h:334
ICON_VSHAPE_RAIL_CAR
@ ICON_VSHAPE_RAIL_CAR
Definition: GUIIcons.h:371
ICON_VSHAPE_BUS_COACH
@ ICON_VSHAPE_BUS_COACH
Definition: GUIIcons.h:367
SVS_DELIVERY
@ SVS_DELIVERY
automated car (with cruise controllers)
Definition: SUMOVehicleClass.h:74
GNEVehicleTypeDialog.h
SUMO_ATTR_APPARENTDECEL
@ SUMO_ATTR_APPARENTDECEL
Definition: SUMOXMLDefinitions.h:448
GNEVehicleTypeDialog::CarFollowingModelParameters::onCmdSetVariable
long onCmdSetVariable(FXObject *, FXSelector, void *)
Definition: GNEVehicleTypeDialog.cpp:1431
ICON_VCLASS_ARMY
@ ICON_VCLASS_ARMY
Definition: GUIIcons.h:327
SUMO_ATTR_PROB
@ SUMO_ATTR_PROB
Definition: SUMOXMLDefinitions.h:629
GNEVehicleTypeDialog::CarFollowingModelParameters::myLabelIncompleteAttribute
FXLabel * myLabelIncompleteAttribute
temporal label for incomplete attributes
Definition: GNEVehicleTypeDialog.h:523
GNEDemandElementDialog
Dialog to edit sequences, parameters, etc.. of DemandElements.
Definition: GNEDemandElementDialog.h:44
SUMO_ATTR_DECEL
@ SUMO_ATTR_DECEL
Definition: SUMOXMLDefinitions.h:446
SVC_TRUCK
@ SVC_TRUCK
vehicle is a large transport vehicle
Definition: SUMOVehicleClass.h:171
SUMO_ATTR_COLLISION_MINGAP_FACTOR
@ SUMO_ATTR_COLLISION_MINGAP_FACTOR
Definition: SUMOXMLDefinitions.h:459
SVC_CUSTOM1
@ SVC_CUSTOM1
is a user-defined type
Definition: SUMOVehicleClass.h:198
SUMO_ATTR_ACCEL
@ SUMO_ATTR_ACCEL
Definition: SUMOXMLDefinitions.h:445
SUMOVTypeParameter::VClassDefaultValues::containerCapacity
int containerCapacity
The container capacity of the vehicle.
Definition: SUMOVTypeParameter.h:121
SVC_ARMY
@ SVC_ARMY
army vehicles
Definition: SUMOVehicleClass.h:147
SVS_BUS
@ SVS_BUS
render as a bus
Definition: SUMOVehicleClass.h:82
ICON_VCLASS_IGNORING
@ ICON_VCLASS_IGNORING
Definition: GUIIcons.h:323
SUMO_TAG_CF_ACC
@ SUMO_TAG_CF_ACC
Definition: SUMOXMLDefinitions.h:287
GNEVehicleTypeDialog::GNEVehicleTypeDialog
GNEVehicleTypeDialog(GNEDemandElement *editedVehicleType, bool updatingElement)
constructor
Definition: GNEVehicleTypeDialog.cpp:1457
PollutantsInterface.h
SUMO_ATTR_LCA_OPPOSITE_PARAM
@ SUMO_ATTR_LCA_OPPOSITE_PARAM
Definition: SUMOXMLDefinitions.h:593
ICON_VSHAPE_MOPED
@ ICON_VSHAPE_MOPED
Definition: GUIIcons.h:355
GNEDemandElement::getAttribute
virtual std::string getAttribute(SumoXMLAttr key) const =0
GNEVehicleTypeDialog::CarFollowingModelParameters::myMinGapFactorRow
CarFollowingModelRow * myMinGapFactorRow
Row for MinGapFactor.
Definition: GNEVehicleTypeDialog.h:472
GNEVehicleTypeDialog::CarFollowingModelParameters::CarFollowingModelRow::myTextField
FXTextField * myTextField
text field
Definition: GNEVehicleTypeDialog.h:437
GNEVehicleTypeDialog::CarFollowingModelParameters::CarFollowingModelRow::updateValue
void updateValue()
update value of Vehicle Type
Definition: GNEVehicleTypeDialog.cpp:1582
GUIDesignAuxiliarVerticalFrame
#define GUIDesignAuxiliarVerticalFrame
design for auxiliar (Without borders) horizontal frame used to pack another frames
Definition: GUIDesigns.h:276
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::ROWTYPE_COLOR
@ ROWTYPE_COLOR
Definition: GNEVehicleTypeDialog.h:115
SVC_HOV
@ SVC_HOV
vehicle is a HOV
Definition: SUMOVehicleClass.h:161
SUMO_ATTR_NOTHING
@ SUMO_ATTR_NOTHING
invalid attribute
Definition: SUMOXMLDefinitions.h:374
SUMOVTypeParameter::VClassDefaultValues::maxSpeed
double maxSpeed
The vehicle type's maximum speed [m/s].
Definition: SUMOVTypeParameter.h:100
GNEViewNet.h
RGBColor::parseColor
static RGBColor parseColor(std::string coldef)
Parses a color information.
Definition: RGBColor.cpp:176
SVC_PASSENGER
@ SVC_PASSENGER
vehicle is a passenger car (a "normal" car)
Definition: SUMOVehicleClass.h:159
SUMO_ATTR_LCA_SPEEDGAINRIGHT
@ SUMO_ATTR_LCA_SPEEDGAINRIGHT
Definition: SUMOXMLDefinitions.h:601
SUMO_ATTR_WIDTH
@ SUMO_ATTR_WIDTH
Definition: SUMOXMLDefinitions.h:386
update
ICON_VSHAPE_SHIP
@ ICON_VSHAPE_SHIP
Definition: GUIIcons.h:375
GNEDemandElementDialog::myContentFrame
FXVerticalFrame * myContentFrame
frame for contents
Definition: GNEDemandElementDialog.h:87
GNEVehicleTypeDialog::VTypeAtributes
class for VClasses
Definition: GNEVehicleTypeDialog.h:48
SVC_RAIL_ELECTRIC
@ SVC_RAIL_ELECTRIC
rail vehicle that requires electrified tracks
Definition: SUMOVehicleClass.h:190
SUMO_ATTR_JM_DRIVE_RED_SPEED
@ SUMO_ATTR_JM_DRIVE_RED_SPEED
Definition: SUMOXMLDefinitions.h:616
GNEVehicleTypeDialog::VTypeAtributes::myWidth
VTypeAttributeRow * myWidth
VTypeAttributeRow for Width.
Definition: GNEVehicleTypeDialog.h:238
GNEVehicleTypeDialog::VTypeAtributes::VClassRow::myVTypeAtributesParent
VTypeAtributes * myVTypeAtributesParent
pointer to VTypeAtributes parent
Definition: GNEVehicleTypeDialog.h:68
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::setVariable
void setVariable()
set Variablen in VehicleType (using default value obtained from GNEAttributeCarrier)
Definition: GNEVehicleTypeDialog.cpp:434
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::ROWTYPE_STRING
@ ROWTYPE_STRING
Definition: GNEVehicleTypeDialog.h:114
SVS_RAIL_CARGO
@ SVS_RAIL_CARGO
render as a cargo train
Definition: SUMOVehicleClass.h:94
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::VTypeAttributeRow
VTypeAttributeRow(VTypeAtributes *VTypeAtributesParent, FXVerticalFrame *verticalFrame, const SumoXMLAttr attr, const RowAttrType rowAttrType, const std::vector< std::string > &values={})
constructor
Definition: GNEVehicleTypeDialog.cpp:396
ProcessError
Definition: UtilExceptions.h:39
SUMO_ATTR_PERSON_CAPACITY
@ SUMO_ATTR_PERSON_CAPACITY
Definition: SUMOXMLDefinitions.h:649
SVS_PASSENGER_HATCHBACK
@ SVS_PASSENGER_HATCHBACK
render as a hatchback passenger vehicle ("Fliessheck")
Definition: SUMOVehicleClass.h:66
GNEVehicleTypeDialog::VTypeAtributes::myMaxSpeed
VTypeAttributeRow * myMaxSpeed
VTypeAttributeRow for MaxSpeed.
Definition: GNEVehicleTypeDialog.h:223
SUMOVTypeParameter::VClassDefaultValues::width
double width
This class' width.
Definition: SUMOVTypeParameter.h:103
SUMO_TAG_CF_KRAUSS_PLUS_SLOPE
@ SUMO_TAG_CF_KRAUSS_PLUS_SLOPE
Definition: SUMOXMLDefinitions.h:276
ICON_VSHAPE_UNKNOWN
@ ICON_VSHAPE_UNKNOWN
Definition: GUIIcons.h:380
SUMO_ATTR_LCA_LOOKAHEADLEFT
@ SUMO_ATTR_LCA_LOOKAHEADLEFT
Definition: SUMOXMLDefinitions.h:600
GNEVehicleTypeDialog::VTypeAtributes::buildJunctionModelAttributesB
void buildJunctionModelAttributesB(FXVerticalFrame *column)
build JunctionModel attributes (B)
Definition: GNEVehicleTypeDialog.cpp:865
ICON_VSHAPE_EMERGENCY
@ ICON_VSHAPE_EMERGENCY
Definition: GUIIcons.h:376
ICON_VCLASS_MOTORCYCLE
@ ICON_VCLASS_MOTORCYCLE
Definition: GUIIcons.h:341
GNEDemandElementDialog::initChanges
void initChanges()
init a new group of changes that will be do it in dialog
Definition: GNEDemandElementDialog.cpp:115
GNEVehicleTypeDialog::VTypeAtributes::buildAttributesA
void buildAttributesA(FXVerticalFrame *column)
build commmon attributes (A)
Definition: GNEVehicleTypeDialog.cpp:755
SUMOVTypeParameter::VClassDefaultValues::minGap
double minGap
This class' free space in front of the vehicle itself.
Definition: SUMOVTypeParameter.h:97
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::myButton
FXButton * myButton
button
Definition: GNEVehicleTypeDialog.h:158
SUMO_ATTR_LCA_OVERTAKE_RIGHT
@ SUMO_ATTR_LCA_OVERTAKE_RIGHT
Definition: SUMOXMLDefinitions.h:605
SVS_MOPED
@ SVS_MOPED
render as a moped
Definition: SUMOVehicleClass.h:58
ICON_VSHAPE_TRUCK
@ ICON_VSHAPE_TRUCK
Definition: GUIIcons.h:363
GNEViewNet::getUndoList
GNEUndoList * getUndoList() const
get the undoList object
Definition: GNEViewNet.cpp:1020
ICON_VCLASS_COACH
@ ICON_VCLASS_COACH
Definition: GUIIcons.h:333
SUMO_ATTR_LCA_STRATEGIC_PARAM
@ SUMO_ATTR_LCA_STRATEGIC_PARAM
Definition: SUMOXMLDefinitions.h:588
GNEDemandElementDialog::myUpdatingElement
bool myUpdatingElement
flag to indicate if additional are being created or modified (cannot be changed after open dialog)
Definition: GNEDemandElementDialog.h:84
GUIDesignGroupBoxFrame
#define GUIDesignGroupBoxFrame
Group box design extended over frame.
Definition: GUIDesigns.h:239
SUMO_ATTR_JM_SIGMA_MINOR
@ SUMO_ATTR_JM_SIGMA_MINOR
Definition: SUMOXMLDefinitions.h:620
GNEVehicleTypeDialog::VTypeAtributes::VShapeRow::myComboBoxShape
FXComboBox * myComboBoxShape
FXComboBox for Shape.
Definition: GNEVehicleTypeDialog.h:98
GNEVehicleTypeDialog::onCmdCancel
long onCmdCancel(FXObject *, FXSelector, void *)
event after press cancel button
Definition: GNEVehicleTypeDialog.cpp:1524
SVS_POLICE
@ SVS_POLICE
render as a police car
Definition: SUMOVehicleClass.h:106
GUIDesignComboBoxWidth180
#define GUIDesignComboBoxWidth180
comboBox with thick frame, size of 180x23 /doubles (Used in GNEVehicleType)
Definition: GUIDesigns.h:214
GNEVehicleTypeDialog::CarFollowingModelParameters::myTmp3Row
CarFollowingModelRow * myTmp3Row
Row for TMP3.
Definition: GNEVehicleTypeDialog.h:499
GNEVehicleTypeDialog::myVehicleTypeValid
bool myVehicleTypeValid
flag to check if current vehicleType is valid
Definition: GNEVehicleTypeDialog.h:549
GNEVehicleTypeDialog::VTypeAtributes::myPersonCapacity
VTypeAttributeRow * myPersonCapacity
VTypeAttributeRow for PersonCapacity.
Definition: GNEVehicleTypeDialog.h:262
GNEDemandElementDialog::myEditedDemandElement
GNEDemandElement * myEditedDemandElement
pointer to edited aditional
Definition: GNEDemandElementDialog.h:81
SUMO_TAG_CF_PWAGNER2009
@ SUMO_TAG_CF_PWAGNER2009
Definition: SUMOXMLDefinitions.h:283
GNEVehicleTypeDialog::VTypeAtributes::myLength
VTypeAttributeRow * myLength
VTypeAttributeRow for Length.
Definition: GNEVehicleTypeDialog.h:217
gCurrentFolder
FXString gCurrentFolder
The folder used as last.
Definition: GUIIOGlobals.cpp:32
ICON_VCLASS_BICYCLE
@ ICON_VCLASS_BICYCLE
Definition: GUIIcons.h:343
ICON_VCLASS_HOV
@ ICON_VCLASS_HOV
Definition: GUIIcons.h:330
SVC_VIP
@ SVC_VIP
vip vehicles
Definition: SUMOVehicleClass.h:149
SVC_SHIP
@ SVC_SHIP
is an arbitrary ship
Definition: SUMOVehicleClass.h:195
SUMO_ATTR_LCA_IMPATIENCE
@ SUMO_ATTR_LCA_IMPATIENCE
Definition: SUMOXMLDefinitions.h:597
GNEVehicleTypeDialog::CarFollowingModelParameters::myEstimationRow
CarFollowingModelRow * myEstimationRow
Row for Estimation (only for Wiedemann)
Definition: GNEVehicleTypeDialog.h:490
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::getButton
const FXButton * getButton() const
get button
Definition: GNEVehicleTypeDialog.cpp:570
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::openImageFileDialog
void openImageFileDialog()
open image file dialog
Definition: GNEVehicleTypeDialog.cpp:601
SVS_RAIL_CAR
@ SVS_RAIL_CAR
render as a (city) rail without locomotive
Definition: SUMOVehicleClass.h:92
ICON_VTYPE
@ ICON_VTYPE
Definition: GUIIcons.h:299
SUMO_ATTR_LCA_ASSERTIVE
@ SUMO_ATTR_LCA_ASSERTIVE
Definition: SUMOXMLDefinitions.h:596
SUMO_ATTR_CF_WIEDEMANN_SECURITY
@ SUMO_ATTR_CF_WIEDEMANN_SECURITY
Definition: SUMOXMLDefinitions.h:841
GNEVehicleTypeDialog::CarFollowingModelParameters::refreshCFMFields
void refreshCFMFields()
refresh Car Following Model Fields
Definition: GNEVehicleTypeDialog.cpp:1239
SUMO_ATTR_CARRIAGE_GAP
@ SUMO_ATTR_CARRIAGE_GAP
Definition: SUMOXMLDefinitions.h:1016
SVS_PASSENGER_VAN
@ SVS_PASSENGER_VAN
render as a van
Definition: SUMOVehicleClass.h:70
GNEDemandElement::setAttribute
virtual void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)=0
method for setting the attribute and letting the object perform demand element changes
SVS_PEDESTRIAN
@ SVS_PEDESTRIAN
render as a pedestrian
Definition: SUMOVehicleClass.h:54
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::openColorDialog
void openColorDialog()
open color dialog
Definition: GNEVehicleTypeDialog.cpp:576
GNEVehicleTypeDialog::myInvalidAttr
SumoXMLAttr myInvalidAttr
current sumo attribute invalid
Definition: GNEVehicleTypeDialog.h:552
ICON_VCLASS_PEDESTRIAN
@ ICON_VCLASS_PEDESTRIAN
Definition: GUIIcons.h:344
GNEVehicleTypeDialog::VTypeAtributes::myEmissionClass
VTypeAttributeRow * myEmissionClass
VTypeAttributeRow for EmissionClass.
Definition: GNEVehicleTypeDialog.h:232
SUMO_TAG_CF_WIEDEMANN
@ SUMO_TAG_CF_WIEDEMANN
Definition: SUMOXMLDefinitions.h:285
ICON_VSHAPE_BUS_TROLLEY
@ ICON_VSHAPE_BUS_TROLLEY
Definition: GUIIcons.h:369
SUMOVTypeParameter::VClassDefaultValues::osgFile
std::string osgFile
3D model file for this class
Definition: SUMOVTypeParameter.h:124
ICON_VCLASS_PASSENGER
@ ICON_VCLASS_PASSENGER
Definition: GUIIcons.h:329
SUMO_ATTR_JM_CROSSING_GAP
@ SUMO_ATTR_JM_CROSSING_GAP
Definition: SUMOXMLDefinitions.h:613
SumoVehicleShapeStrings
StringBijection< SUMOVehicleShape > SumoVehicleShapeStrings(sumoVehicleShapeStringInitializer, SVS_UNKNOWN, false)
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::ROWTYPE_FILENAME
@ ROWTYPE_FILENAME
Definition: GNEVehicleTypeDialog.h:116
SUMOVTypeParameter::VClassDefaultValues::locomotiveLength
double locomotiveLength
the length of train locomotive
Definition: SUMOVTypeParameter.h:130
SUMO_ATTR_HEIGHT
@ SUMO_ATTR_HEIGHT
Definition: SUMOXMLDefinitions.h:789
GUIDesignLabelTickedIcon180x46
#define GUIDesignLabelTickedIcon180x46
label ticked filled extended over frame used for VClasses/VShapes. (can be used by icons of 64x32 pix...
Definition: GUIDesigns.h:191
ICON_VCLASS_PRIVATE
@ ICON_VCLASS_PRIVATE
Definition: GUIIcons.h:324
toString
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
Definition: ToString.h:47
SUMO_ATTR_CF_PWAGNER2009_TAULAST
@ SUMO_ATTR_CF_PWAGNER2009_TAULAST
Definition: SUMOXMLDefinitions.h:834
GNEVehicleTypeDialog::CarFollowingModelParameters::myVerticalFrameRows
FXVerticalFrame * myVerticalFrameRows
Vertical Frame for CarFollowingModelRow.
Definition: GNEVehicleTypeDialog.h:451
GNEVehicleTypeDialog::CarFollowingModelParameters::myRows
std::vector< CarFollowingModelRow * > myRows
vector with the Car Following Model Row
Definition: GNEVehicleTypeDialog.h:445
SUMO_ATTR_TRAIN_TYPE
@ SUMO_ATTR_TRAIN_TYPE
Definition: SUMOXMLDefinitions.h:583
SUMO_ATTR_SIGMA
@ SUMO_ATTR_SIGMA
Definition: SUMOXMLDefinitions.h:548
GNEVehicleTypeDialog::CarFollowingModelParameters::myDecelRow
CarFollowingModelRow * myDecelRow
Row for Decel.
Definition: GNEVehicleTypeDialog.h:457
SVC_MOPED
@ SVC_MOPED
vehicle is a moped
Definition: SUMOVehicleClass.h:177
ICON_VSHAPE_TRUCK_SEMITRAILER
@ ICON_VSHAPE_TRUCK_SEMITRAILER
Definition: GUIIcons.h:364
SUMO_ATTR_CAR_FOLLOW_MODEL
@ SUMO_ATTR_CAR_FOLLOW_MODEL
Definition: SUMOXMLDefinitions.h:457
GNEVehicleTypeDialog::CarFollowingModelParameters::myAprobRow
CarFollowingModelRow * myAprobRow
Row for Aprob.
Definition: GNEVehicleTypeDialog.h:514
SUMO_ATTR_IMPATIENCE
@ SUMO_ATTR_IMPATIENCE
Definition: SUMOXMLDefinitions.h:796
GUIDesignButtonRectangular150x23
#define GUIDesignButtonRectangular150x23
button rectangular with thick and raise frame with a size of 150x23
Definition: GUIDesigns.h:68
ICON_VCLASS_RAIL_URBAN
@ ICON_VCLASS_RAIL_URBAN
Definition: GUIIcons.h:338
MID_GNE_SET_ATTRIBUTE_DIALOG
@ MID_GNE_SET_ATTRIBUTE_DIALOG
attribute edited trought dialog
Definition: GUIAppEnum.h:672
GNEVehicleTypeDialog::CarFollowingModelParameters
class for CarFollowingModel
Definition: GNEVehicleTypeDialog.h:394
SVC_TAXI
@ SVC_TAXI
vehicle is a taxi
Definition: SUMOVehicleClass.h:163
SUMO_ATTR_LCA_TIME_TO_IMPATIENCE
@ SUMO_ATTR_LCA_TIME_TO_IMPATIENCE
Definition: SUMOXMLDefinitions.h:598
SUMO_ATTR_GUISHAPE
@ SUMO_ATTR_GUISHAPE
Definition: SUMOXMLDefinitions.h:790
SUMOVTypeParameter::VClassDefaultValues
struct for default values that depend of VClass
Definition: SUMOVTypeParameter.h:89
SUMO_ATTR_K
@ SUMO_ATTR_K
Definition: SUMOXMLDefinitions.h:819
ICON_VCLASS_CUSTOM2
@ ICON_VCLASS_CUSTOM2
Definition: GUIIcons.h:348
SUMO_TAG_CF_DANIEL1
@ SUMO_TAG_CF_DANIEL1
Definition: SUMOXMLDefinitions.h:280
GNEVehicleTypeDialog::CarFollowingModelParameters::mySecurityRow
CarFollowingModelRow * mySecurityRow
Row for Security (only for Wiedemann)
Definition: GNEVehicleTypeDialog.h:487
GNEVehicleTypeDialog
Dialog for edit rerouter intervals.
Definition: GNEVehicleTypeDialog.h:44
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow
class used for represent rows with Vehicle Type parameters
Definition: GNEVehicleTypeDialog.h:109
GNEDemandElementDialog::openAsModalDialog
FXint openAsModalDialog(FXuint placement=PLACEMENT_CURSOR)
execute dialog as modal
Definition: GNEDemandElementDialog.cpp:77
GNEVehicleTypeDialog::CarFollowingModelParameters::myTmp1Row
CarFollowingModelRow * myTmp1Row
Row for TMP1.
Definition: GNEVehicleTypeDialog.h:493
GUIDesignComboBox
#define GUIDesignComboBox
Definition: GUIDesigns.h:205
SVS_PASSENGER
@ SVS_PASSENGER
render as a passenger vehicle
Definition: SUMOVehicleClass.h:62
ICON_VCLASS_TAXI
@ ICON_VCLASS_TAXI
Definition: GUIIcons.h:331
SUMO_ATTR_CARRIAGE_LENGTH
@ SUMO_ATTR_CARRIAGE_LENGTH
Definition: SUMOXMLDefinitions.h:1014
GNEVehicleTypeDialog::VTypeAtributes::VShapeRow::myComboBoxShapeLabelImage
FXLabel * myComboBoxShapeLabelImage
label with image of Shape
Definition: GNEVehicleTypeDialog.h:101
ICON_VSHAPE_PASSENGER
@ ICON_VSHAPE_PASSENGER
Definition: GUIIcons.h:357
GNEDemandElementDialog::resetChanges
void resetChanges()
reset changes did in this dialog.
Definition: GNEDemandElementDialog.cpp:141
SVS_EMERGENCY
@ SVS_EMERGENCY
render as an emergency vehicle
Definition: SUMOVehicleClass.h:102
SVS_E_VEHICLE
@ SVS_E_VEHICLE
render as a (futuristic) e-vehicle
Definition: SUMOVehicleClass.h:96
SUMO_ATTR_JM_DRIVE_AFTER_RED_TIME
@ SUMO_ATTR_JM_DRIVE_AFTER_RED_TIME
Definition: SUMOXMLDefinitions.h:615
SVS_SHIP
@ SVS_SHIP
render as a arbitrary ship
Definition: SUMOVehicleClass.h:100
SUMO_ATTR_EMERGENCYDECEL
@ SUMO_ATTR_EMERGENCYDECEL
Definition: SUMOXMLDefinitions.h:447
SVS_TRUCK_SEMITRAILER
@ SVS_TRUCK_SEMITRAILER
render as a semi-trailer transport vehicle ("Sattelschlepper")
Definition: SUMOVehicleClass.h:78
ICON_VSHAPE_PASSENGER_WAGON
@ ICON_VSHAPE_PASSENGER_WAGON
Definition: GUIIcons.h:360
SUMO_ATTR_VCLASS
@ SUMO_ATTR_VCLASS
Definition: SUMOXMLDefinitions.h:450
ICON_VSHAPE_PASSENGER_HATCHBACK
@ ICON_VSHAPE_PASSENGER_HATCHBACK
Definition: GUIIcons.h:359
ICON_VSHAPE_DELIVERY
@ ICON_VSHAPE_DELIVERY
Definition: GUIIcons.h:362
SUMO_TAG_CF_BKERNER
@ SUMO_TAG_CF_BKERNER
Definition: SUMOXMLDefinitions.h:284
SUMOVTypeParameter::VClassDefaultValues::personCapacity
int personCapacity
The person capacity of the vehicle.
Definition: SUMOVTypeParameter.h:118
ICON_VCLASS_MOPED
@ ICON_VCLASS_MOPED
Definition: GUIIcons.h:342
GUIDesignAuxiliarFrame
#define GUIDesignAuxiliarFrame
design for auxiliar (Without borders) frames used to pack another frames extended in all directions
Definition: GUIDesigns.h:270
getVehicleShapeID
SUMOVehicleShape getVehicleShapeID(const std::string &name)
Returns the class id of the shape class given by its name.
Definition: SUMOVehicleClass.cpp:342
GNEVehicleTypeDialog::CarFollowingModelParameters::myAdaptTimeRow
CarFollowingModelRow * myAdaptTimeRow
Row for Adapt Time.
Definition: GNEVehicleTypeDialog.h:520
SUMO_ATTR_MINGAP
@ SUMO_ATTR_MINGAP
Definition: SUMOXMLDefinitions.h:458
GNEVehicleTypeDialog::VTypeAtributes::onCmdSetAttribute
long onCmdSetAttribute(FXObject *, FXSelector, void *)
Definition: GNEVehicleTypeDialog.cpp:1011
config.h
SVS_FIREBRIGADE
@ SVS_FIREBRIGADE
render as a fire brigade
Definition: SUMOVehicleClass.h:104
GNEVehicleTypeDialog::VTypeAtributes::onCmdSetAttributeDialog
long onCmdSetAttributeDialog(FXObject *obj, FXSelector, void *)
@event called after press a button dialog
Definition: GNEVehicleTypeDialog.cpp:1102
GNEVehicleTypeDialog::onCmdAccept
long onCmdAccept(FXObject *, FXSelector, void *)
Definition: GNEVehicleTypeDialog.cpp:1497
ICON_VSHAPE_BUS_FLEXIBLE
@ ICON_VSHAPE_BUS_FLEXIBLE
Definition: GUIIcons.h:368
SVC_TRAILER
@ SVC_TRAILER
vehicle is a large transport vehicle
Definition: SUMOVehicleClass.h:173
SVC_BUS
@ SVC_BUS
vehicle is a bus
Definition: SUMOVehicleClass.h:165
SUMO_ATTR_ACTIONSTEPLENGTH
@ SUMO_ATTR_ACTIONSTEPLENGTH
Definition: SUMOXMLDefinitions.h:449
GNEVehicleType.h
ICON_VSHAPE_RAIL_CARGO
@ ICON_VSHAPE_RAIL_CARGO
Definition: GUIIcons.h:372
GNEVehicleTypeDialog::VTypeAtributes::buildJunctionModelAttributesA
void buildJunctionModelAttributesA(FXVerticalFrame *column)
build JunctionModel attributes (A)
Definition: GNEVehicleTypeDialog.cpp:846
SVS_ANT
@ SVS_ANT
render as a giant ant
Definition: SUMOVehicleClass.h:98
SUMO_ATTR_LOCOMOTIVE_LENGTH
@ SUMO_ATTR_LOCOMOTIVE_LENGTH
Definition: SUMOXMLDefinitions.h:1015
PollutantsInterface::getAllClassesStr
static const std::vector< std::string > & getAllClassesStr()
Get all SUMOEmissionClass in string format.
Definition: PollutantsInterface.cpp:82
ICON_VSHAPE_RICKSHAW
@ ICON_VSHAPE_RICKSHAW
Definition: GUIIcons.h:379
SVS_TRUCK_1TRAILER
@ SVS_TRUCK_1TRAILER
render as a transport vehicle with one trailer
Definition: SUMOVehicleClass.h:80
SVS_PASSENGER_WAGON
@ SVS_PASSENGER_WAGON
render as a wagon passenger vehicle ("Combi")
Definition: SUMOVehicleClass.h:68
SUMO_ATTR_TMP4
@ SUMO_ATTR_TMP4
Definition: SUMOXMLDefinitions.h:553
SUMOXMLDefinitions::LateralAlignments
static StringBijection< LateralAlignment > LateralAlignments
lateral alignments
Definition: SUMOXMLDefinitions.h:1401
GNEVehicleTypeDialog::myCarFollowingModelParameters
CarFollowingModelParameters * myCarFollowingModelParameters
Car Following model parameters.
Definition: GNEVehicleTypeDialog.h:558
SUMO_TAG_CF_SMART_SK
@ SUMO_TAG_CF_SMART_SK
Definition: SUMOXMLDefinitions.h:279
MFXUtils::getFXColor
static FXColor getFXColor(const RGBColor &col)
converts FXColor to RGBColor
Definition: MFXUtils.cpp:113
SVC_MOTORCYCLE
@ SVC_MOTORCYCLE
vehicle is a motorcycle
Definition: SUMOVehicleClass.h:175
GNEAttributeCarrier::getTagStr
const std::string & getTagStr() const
get tag assigned to this object in string format
Definition: GNEAttributeCarrier.cpp:1267
GNEVehicleTypeDialog::VTypeAtributes::mySpeedFactor
VTypeAttributeRow * mySpeedFactor
VTypeAttributeRow for SpeedFactor.
Definition: GNEVehicleTypeDialog.h:226
SVS_BUS_COACH
@ SVS_BUS_COACH
render as a coach
Definition: SUMOVehicleClass.h:84
GNEVehicleTypeDialog::VTypeAtributes::myMinGap
VTypeAttributeRow * myMinGap
VTypeAttributeRow for MinGap.
Definition: GNEVehicleTypeDialog.h:220
ICON_VSHAPE_PASSENGER_VAN
@ ICON_VSHAPE_PASSENGER_VAN
Definition: GUIIcons.h:361
GNEVehicleTypeDialog::VTypeAtributes::VShapeRow::updateValues
void updateValues()
update values
Definition: GNEVehicleTypeDialog.cpp:294
SVS_RICKSHAW
@ SVS_RICKSHAW
render as a rickshaw
Definition: SUMOVehicleClass.h:108
SUMOVTypeParameter::VClassDefaultValues::height
double height
This class' height.
Definition: SUMOVTypeParameter.h:106
SumoXMLAttr
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
Definition: SUMOXMLDefinitions.h:372
SVC_IGNORING
@ SVC_IGNORING
vehicles ignoring classes
Definition: SUMOVehicleClass.h:135
ICON_VCLASS_RAIL_ELECTRIC
@ ICON_VCLASS_RAIL_ELECTRIC
Definition: GUIIcons.h:340
GNEDemandElementDialog::changeDemandElementDialogHeader
void changeDemandElementDialogHeader(const std::string &newHeader)
change additional dialog header
Definition: GNEDemandElementDialog.cpp:108
GNEVehicleTypeDialog::CarFollowingModelParameters::myApparentDecelRow
CarFollowingModelRow * myApparentDecelRow
Row for aparent Decel.
Definition: GNEVehicleTypeDialog.h:460
GNEVehicleTypeDialog::CarFollowingModelParameters::CarFollowingModelRow::CarFollowingModelRow
CarFollowingModelRow(CarFollowingModelParameters *carFollowingModelParametersParent, FXVerticalFrame *verticalFrame, SumoXMLAttr attr)
constructor
Definition: GNEVehicleTypeDialog.cpp:1548
SUMO_ATTR_EMISSIONCLASS
@ SUMO_ATTR_EMISSIONCLASS
Definition: SUMOXMLDefinitions.h:795
SUMOVTypeParameter::VClassDefaultValues::speedFactor
Distribution_Parameterized speedFactor
The factor by which the maximum speed may deviate from the allowed max speed on the street.
Definition: SUMOVTypeParameter.h:115
ICON_VCLASS_TRAM
@ ICON_VCLASS_TRAM
Definition: GUIIcons.h:337
WRITE_DEBUG
#define WRITE_DEBUG(msg)
Definition: MsgHandler.h:284
GNEVehicleTypeDialog::VTypeAtributes::VClassRow::updateValue
SUMOVehicleClass updateValue()
update values
Definition: GNEVehicleTypeDialog.cpp:150
SUMO_ATTR_LCA_PUSHY
@ SUMO_ATTR_LCA_PUSHY
Definition: SUMOXMLDefinitions.h:594
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::myTextField
FXTextField * myTextField
text field
Definition: GNEVehicleTypeDialog.h:161
ICON_VCLASS_AUTHORITY
@ ICON_VCLASS_AUTHORITY
Definition: GUIIcons.h:326
SUMO_ATTR_CF_KERNER_PHI
@ SUMO_ATTR_CF_KERNER_PHI
Definition: SUMOXMLDefinitions.h:840
GNEVehicleTypeDialog::VTypeAtributes::VClassRow
FOX-declaration.
Definition: GNEVehicleTypeDialog.h:54
GNEUndoList.h
SUMO_ATTR_TAU
@ SUMO_ATTR_TAU
Definition: SUMOXMLDefinitions.h:549
SUMO_ATTR_CF_IDMM_ADAPT_TIME
@ SUMO_ATTR_CF_IDMM_ADAPT_TIME
Definition: SUMOXMLDefinitions.h:839
SUMO_ATTR_LCA_ACCEL_LAT
@ SUMO_ATTR_LCA_ACCEL_LAT
Definition: SUMOXMLDefinitions.h:599
SVS_RAIL
@ SVS_RAIL
render as a rail
Definition: SUMOVehicleClass.h:90
SUMO_ATTR_LCA_TURN_ALIGNMENT_DISTANCE
@ SUMO_ATTR_LCA_TURN_ALIGNMENT_DISTANCE
Definition: SUMOXMLDefinitions.h:604
GNEVehicleTypeDialog::CarFollowingModelParameters::CarFollowingModelParameters
CarFollowingModelParameters(GNEVehicleTypeDialog *vehicleTypeDialog, FXHorizontalFrame *column)
FOX-declaration.
Definition: GNEVehicleTypeDialog.cpp:1118
ICON_VSHAPE_PASSENGER_SEDAN
@ ICON_VSHAPE_PASSENGER_SEDAN
Definition: GUIIcons.h:358
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow::myComboBox
FXComboBox * myComboBox
ComboBox for attributes with limited values.
Definition: GNEVehicleTypeDialog.h:164