64 myVTypeAttributesParent(VTypeAttributesParent) {
72 myComboBoxVClassLabelImage->setBackColor(FXRGBA(255, 255, 255, 255));
74 for (
const auto& vClass : myVTypeAttributesParent->myVehicleTypeDialog->getEditedDemandElement()->getTagProperty().getAttributeProperties(
SUMO_ATTR_VCLASS).getDiscreteValues()) {
153 const auto vClass = myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(
SUMO_ATTR_VCLASS);
155 for (
int i = 0; i < myComboBoxVClass->getNumItems(); i++) {
156 if (myComboBoxVClass->getItemText(i) == vClass) {
160 myComboBoxVClass->setCurrentItem(index);
161 setVClassLabelImage();
162 return myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getVClass();
169 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(
SUMO_ATTR_VCLASS).empty()) {
173 switch (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getVClass()) {
286 myVTypeAttributesParent(VTypeAttributesParent) {
297 for (
const auto& VShapeString : VShapeStrings) {
308 if (myComboBoxShape->isEnabled()) {
309 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(
SUMO_ATTR_GUISHAPE, myComboBoxShape->getText().text())) {
310 myComboBoxShape->setTextColor(FXRGB(0, 0, 0));
311 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(
SUMO_ATTR_GUISHAPE, myComboBoxShape->getText().text(),
312 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
313 setVShapeLabelImage();
315 myComboBoxShape->setTextColor(FXRGB(255, 0, 0));
316 myVTypeAttributesParent->myVehicleTypeDialog->myVehicleTypeValid =
false;
326 const int index = myComboBoxShape->findItem(myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(
SUMO_ATTR_GUISHAPE).c_str());
328 myComboBoxShape->disable();
330 myComboBoxShape->setCurrentItem(index);
331 myComboBoxShape->enable();
333 setVShapeLabelImage();
344 myComboBoxShape->disable();
346 myComboBoxShape->setCurrentItem(index);
347 myComboBoxShape->enable();
349 myComboBoxShape->setTextColor(FXRGB(0, 0, 0));
350 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(
SUMO_ATTR_GUISHAPE, myComboBoxShape->getText().text(),
351 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
352 setVShapeLabelImage();
465 myVTypeAttributesParent(VTypeAttributesParent),
467 myRowAttrType(rowAttrType),
469 myTextField(nullptr),
470 myComboBox(nullptr) {
489 for (
const auto& value : values) {
500 if (myRowAttrType == ROWTYPE_COMBOBOX) {
502 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, myComboBox->getText().text())) {
503 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, myComboBox->getText().text(),
504 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
508 myComboBox->setTextColor(FXRGB(255, 0, 0));
510 myVTypeAttributesParent->myVehicleTypeDialog->myVehicleTypeValid =
false;
511 myVTypeAttributesParent->myVehicleTypeDialog->myInvalidAttr = myAttr;
513 }
else if (myRowAttrType == ROWTYPE_COLOR) {
515 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(
SUMO_ATTR_COLOR, myTextField->getText().text())) {
517 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty().getDefaultValue(
SUMO_ATTR_COLOR) != myTextField->getText().text()) {
518 myTextField->setTextColor(FXRGB(0, 0, 0));
520 myTextField->setTextColor(FXRGB(195, 195, 195));
522 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(
SUMO_ATTR_COLOR, myTextField->getText().text(), myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
524 myTextField->setTextColor(FXRGB(255, 0, 0));
525 myVTypeAttributesParent->myVehicleTypeDialog->myVehicleTypeValid =
false;
526 myVTypeAttributesParent->myVehicleTypeDialog->myInvalidAttr =
SUMO_ATTR_COLOR;
530 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, myTextField->getText().text())) {
531 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, myTextField->getText().text(),
532 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
536 myTextField->setTextColor(FXRGB(255, 0, 0));
538 myVTypeAttributesParent->myVehicleTypeDialog->myVehicleTypeValid =
false;
539 myVTypeAttributesParent->myVehicleTypeDialog->myInvalidAttr = myAttr;
549 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, myComboBox->getText().text())) {
550 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, myComboBox->getText().text(),
551 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
553 updateValue(defaultValue);
555 myComboBox->setTextColor(FXRGB(255, 0, 0));
557 myVTypeAttributesParent->myVehicleTypeDialog->myVehicleTypeValid =
false;
558 myVTypeAttributesParent->myVehicleTypeDialog->myInvalidAttr = myAttr;
562 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, myTextField->getText().text())) {
563 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, myTextField->getText().text(),
564 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
566 updateValue(defaultValue);
568 myTextField->setTextColor(FXRGB(255, 0, 0));
570 myVTypeAttributesParent->myVehicleTypeDialog->myVehicleTypeValid =
false;
571 myVTypeAttributesParent->myVehicleTypeDialog->myInvalidAttr = myAttr;
579 if (myRowAttrType == ROWTYPE_COMBOBOX) {
581 const int index = myComboBox->findItem(myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
583 myComboBox->disable();
585 myComboBox->setCurrentItem(index);
586 myComboBox->enable();
589 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty().getDefaultValue(myAttr) != myComboBox->getText().text()) {
590 myComboBox->setTextColor(FXRGB(0, 0, 0));
592 myComboBox->setTextColor(FXRGB(195, 195, 195));
594 }
else if (myRowAttrType == ROWTYPE_COLOR) {
596 myTextField->setText(myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
598 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty().getDefaultValue(myAttr) != myTextField->getText().text()) {
599 myTextField->setTextColor(FXRGB(0, 0, 0));
601 myTextField->setTextColor(FXRGB(195, 195, 195));
605 const std::string& parametersStr = myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr);
607 myTextField->setText(parametersStr.c_str());
609 myTextField->setTextColor(FXRGB(0, 0, 0));
618 if (keyValue.size() == 2) {
624 myTextField->setText(myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
626 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty().getDefaultValue(myAttr) != myTextField->getText().text()) {
627 myTextField->setTextColor(FXRGB(0, 0, 0));
629 myTextField->setTextColor(FXRGB(195, 195, 195));
639 const int index = myComboBox->findItem(myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
641 myComboBox->disable();
643 myComboBox->setCurrentItem(index);
644 myComboBox->enable();
647 if (defaultValue != myComboBox->getText().text()) {
648 myComboBox->setTextColor(FXRGB(0, 0, 0));
650 myComboBox->setTextColor(FXRGB(195, 195, 195));
654 myTextField->setText(myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
656 if (defaultValue != myTextField->getText().text()) {
657 myTextField->setTextColor(FXRGB(0, 0, 0));
659 myTextField->setTextColor(FXRGB(195, 195, 195));
674 FXColorDialog colordialog(
this,
TL(
"Color Dialog"));
675 colordialog.setTarget(
this);
678 if (GNEAttributeCarrier::canParse<RGBColor>(myTextField->getText().text())) {
679 colordialog.setRGBA(
MFXUtils::getFXColor(GNEAttributeCarrier::parse<RGBColor>(myTextField->getText().text())));
684 if (colordialog.execute()) {
686 myTextField->setText(newValue.c_str());
687 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, newValue)) {
688 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, newValue, myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
690 myTextField->setTextColor(FXRGB(0, 0, 0));
691 myTextField->killFocus();
700 FXFileDialog opendialog(
this,
TL(
"Open Image"));
702 opendialog.setSelectMode(SELECTFILE_EXISTING);
703 opendialog.setPatternList(
"All files (*)");
707 if (opendialog.execute()) {
711 std::string imagePath = opendialog.getFilename().text();
713 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, imagePath)) {
714 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, imagePath, myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
715 myTextField->setText(imagePath.c_str());
717 myTextField->setTextColor(FXRGB(0, 0, 0));
718 myTextField->killFocus();
727 FXFileDialog opendialog(
this,
TL(
"Open OSG File"));
729 opendialog.setSelectMode(SELECTFILE_EXISTING);
730 opendialog.setPatternList(
"OSG file (*.obj)");
734 if (opendialog.execute()) {
738 std::string imagePath = opendialog.getFilename().text();
740 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, imagePath)) {
741 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, imagePath, myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
742 myTextField->setText(imagePath.c_str());
744 myTextField->setTextColor(FXRGB(0, 0, 0));
745 myTextField->killFocus();
753 return myTextField->getText().text();
757 std::vector<std::pair<std::string, std::string> >
759 std::vector<std::pair<std::string, std::string> > result;
762 result.push_back(std::make_pair(parameter.first, parameter.second));
775 for (
const auto& parameter : parameters) {
777 result += parameter.first +
"=" + parameter.second +
"|";
782 if (!result.empty()) {
786 myTextField->setText(result.c_str());
795 return "crossingGap";
797 return "driveAfterYellowTime";
799 return "driveAfterRedTime";
801 return "driveRedSpeed";
803 return "ignoreKeepClearTime";
805 return "ignoreFoeSpeed";
807 return "ignoreFoeProb";
811 return "timegapMinor";
816 return "cooperative";
834 return "timeToImpatience";
838 return "lookaheadLeft";
840 return "speedGainRight";
842 return "maxSpeedLatStanding";
844 return "maxSpeedLatFactor";
846 return "turnAlignDistance";
848 return "overtakeRight";
850 return "keepRightAcceptanceTime";
852 return "overtakeDeltaSpeedFactor";
872 FXGroupBox* commonAttributes =
new FXGroupBox(firstAuxiliarVerticalFrame,
"Vehicle Type attributes",
GUIDesignGroupBoxFrame);
880 FXGroupBox* JMAttributes =
new FXGroupBox(firstAuxiliarVerticalFrame,
"Junction Model attributes",
GUIDesignGroupBoxFrame);
888 FXGroupBox* LCMAttributes =
new FXGroupBox(firstAuxiliarHorizontalFrame,
"Lane Change Model attributes",
GUIDesignGroupBoxFrame);
897 myVClassRow =
new VClassRow(
this, column);
945 myVShapeRow =
new VShapeRow(
this, column);
1096 myTextFieldVehicleTypeID->setText(myVehicleTypeDialog->myEditedDemandElement->getAttribute(
SUMO_ATTR_ID).c_str());
1099 myVShapeRow->updateValues();
1101 myLaneChangeModel->updateValue();
1103 myColor->updateValue();
1110 myWidth->updateValue(
toString(defaultVTypeParameters.
width));
1112 myFilename->updateValue();
1118 myBoardingDuration->updateValue();
1119 myLoadingDuration->updateValue();
1120 myMinGapLat->updateValue();
1121 myMaxSpeedLat->updateValue();
1122 myActionStepLength->updateValue();
1123 myProbability->updateValue();
1124 myCarriageGap->updateValue();
1126 myJMCrossingGap->updateValue();
1127 myJMIgnoreKeepclearTime->updateValue();
1128 myJMDriveAfterYellowTime->updateValue();
1129 myJMDriveAfterRedTime->updateValue();
1130 myJMDriveRedSpeed->updateValue();
1131 myJMIgnoreFoeProb->updateValue();
1132 myJMIgnoreFoeSpeed->updateValue();
1133 myJMSigmaMinor->updateValue();
1134 myJMTimeGapMinor->updateValue();
1135 myJMImpatience->updateValue();
1137 myLCAStrategicParam->updateValue();
1138 myLCACooperativeParam->updateValue();
1139 myLCASpeedgainParam->updateValue();
1140 myLCAKeeprightParam->updateValue();
1141 myLCASublaneParam->updateValue();
1142 myLCAOppositeParam->updateValue();
1143 myLCAPushy->updateValue();
1144 myLCAPushygap->updateValue();
1145 myLCAAssertive->updateValue();
1146 myLCAImpatience->updateValue();
1147 myLCATimeToImpatience->updateValue();
1148 myLCAAccelLat->updateValue();
1149 myLCALookAheadLeft->updateValue();
1150 myLCASpeedGainRight->updateValue();
1151 myLCAMaxSpeedLatStanding->updateValue();
1152 myLCAMaxSpeedLatFactor->updateValue();
1153 myLCATurnAlignmentDistance->updateValue();
1154 myLCAOvertakeRight->updateValue();
1155 myLCAKeepRightAcceptanceTime->updateValue();
1156 myLCAOvertakeDeltaSpeedFactor->updateValue();
1159 myParameters->updateValue();
1166 myVehicleTypeDialog->myVehicleTypeValid =
true;
1169 if (myVehicleTypeDialog->myEditedDemandElement->isValid(
SUMO_ATTR_ID, myTextFieldVehicleTypeID->getText().text())) {
1170 myTextFieldVehicleTypeID->setTextColor(FXRGB(0, 0, 0));
1171 myVehicleTypeDialog->myEditedDemandElement->setAttribute(
SUMO_ATTR_ID, myTextFieldVehicleTypeID->getText().text(), myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
1172 }
else if (myVehicleTypeDialog->myEditedDemandElement->getAttribute(
SUMO_ATTR_ID) == myTextFieldVehicleTypeID->getText().text()) {
1173 myTextFieldVehicleTypeID->setTextColor(FXRGB(0, 0, 0));
1174 myVehicleTypeDialog->myEditedDemandElement->setAttribute(
SUMO_ATTR_ID, myTextFieldVehicleTypeID->getText().text(), myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
1176 myTextFieldVehicleTypeID->setTextColor(FXRGB(255, 0, 0));
1177 myVehicleTypeDialog->myVehicleTypeValid =
false;
1183 myVShapeRow->setVariable();
1185 myColor->setVariable();
1192 myWidth->setVariable(
toString(defaultVTypeParameters.
width));
1196 myLaneChangeModel->setVariable();
1203 myWidth->setVariable(
toString(defaultVTypeParameters.
width));
1205 myFilename->setVariable();
1211 myBoardingDuration->setVariable();
1212 myLoadingDuration->setVariable();
1213 myMinGapLat->setVariable();
1214 myMaxSpeedLat->setVariable();
1215 myActionStepLength->setVariable();
1216 myProbability->setVariable();
1217 myCarriageGap->setVariable();
1219 myJMCrossingGap->setVariable();
1220 myJMIgnoreKeepclearTime->setVariable();
1221 myJMDriveAfterYellowTime->setVariable();
1222 myJMDriveAfterRedTime->setVariable();
1223 myJMDriveRedSpeed->setVariable();
1224 myJMIgnoreFoeProb->setVariable();
1225 myJMIgnoreFoeSpeed->setVariable();
1226 myJMSigmaMinor->setVariable();
1227 myJMTimeGapMinor->setVariable();
1228 myJMImpatience->setVariable();
1230 myLCAStrategicParam->setVariable();
1231 myLCACooperativeParam->setVariable();
1232 myLCASpeedgainParam->setVariable();
1233 myLCAKeeprightParam->setVariable();
1234 myLCASublaneParam->setVariable();
1235 myLCAOppositeParam->setVariable();
1236 myLCAPushy->setVariable();
1237 myLCAPushygap->setVariable();
1238 myLCAAssertive->setVariable();
1239 myLCAImpatience->setVariable();
1240 myLCATimeToImpatience->setVariable();
1241 myLCAAccelLat->setVariable();
1242 myLCALookAheadLeft->setVariable();
1243 myLCASpeedGainRight->setVariable();
1244 myLCAMaxSpeedLatStanding->setVariable();
1245 myLCAMaxSpeedLatFactor->setVariable();
1246 myLCATurnAlignmentDistance->setVariable();
1247 myLCAOvertakeRight->setVariable();
1248 myLCAKeepRightAcceptanceTime->setVariable();
1249 myLCAOvertakeDeltaSpeedFactor->setVariable();
1251 myParameters->setVariable();
1259 if (obj == myColor->getButton()) {
1260 myColor->openColorDialog();
1261 }
else if (obj == myFilename->getButton()) {
1262 myFilename->openImageFileDialog();
1263 }
else if (obj == myOSGFile->getButton()) {
1264 myFilename->openOSGFileDialog();
1275 if (
GNESingleParametersDialog(myParameters, myVehicleTypeDialog->getEditedDemandElement()->getNet()->getViewNet()).execute()) {
1279 myVehicleTypeDialog->getEditedDemandElement()->setAttribute(
GNE_ATTR_PARAMETERS, myParameters->getParametersStr(), myVehicleTypeDialog->getEditedDemandElement()->getNet()->getViewNet()->getUndoList());
1293 myVehicleTypeDialog(vehicleTypeDialog) {
1306 for (
const auto& CFModel : CFModels) {
1510 for (
const auto& row : myRows) {
1514 myLabelIncompleteAttribute->hide();
1525 myApparentDecelRow->show();
1526 myEmergencyDecelRow->show();
1542 myEmergencyDecelRow->show();
1544 myMinGapFactorRow->show();
1555 myEmergencyDecelRow->show();
1557 myMinGapFactorRow->show();
1558 myTrauLastRow->show();
1565 myEmergencyDecelRow->show();
1567 mySteppingRow->show();
1568 myMinGapFactorRow->show();
1574 myEmergencyDecelRow->show();
1576 mySteppingRow->show();
1577 myMinGapFactorRow->show();
1578 myAdaptFactorRow->show();
1579 myAdaptTimeRow->show();
1585 myEmergencyDecelRow->show();
1587 mySteppingRow->show();
1588 myMinGapFactorRow->show();
1589 myTpreviewRow->show();
1590 myTreactionRow->show();
1591 myTPersDriveRow->show();
1592 myTPersEstimateRow->show();
1593 myCcoolnessRow->show();
1594 mySigmaleaderRow->show();
1595 mySigmagapRow->show();
1596 mySigmaerrorRow->show();
1597 myJerkmaxRow->show();
1598 myEpsilonaccRow->show();
1599 myTaccmaxRow->show();
1600 myMflatnessRow->show();
1601 myMbeginRow->show();
1602 myUseVehDynamicsRow->show();
1603 myMaxVehPreviewRow->show();
1609 myEmergencyDecelRow->show();
1612 myMinGapFactorRow->show();
1618 myEmergencyDecelRow->show();
1619 myMinGapFactorRow->show();
1620 mySecurityRow->show();
1621 myEstimationRow->show();
1636 myTrainTypeRow->show();
1642 myEmergencyDecelRow->show();
1643 myMinGapFactorRow->show();
1645 myLabelIncompleteAttribute->show();
1661 myEmergencyDecelRow->show();
1662 myMinGapFactorRow->show();
1664 myLabelIncompleteAttribute->show();
1687 myLabelIncompleteAttribute->show();
1714 myVerticalFrameRows->recalc();
1723 myComboBoxCarFollowModel->setCurrentItem(0);
1726 const int index = myComboBoxCarFollowModel->findItem(myVehicleTypeDialog->myEditedDemandElement->getAttribute(
SUMO_ATTR_CAR_FOLLOW_MODEL).c_str());
1728 myComboBoxCarFollowModel->disable();
1730 myComboBoxCarFollowModel->setCurrentItem(index);
1731 myComboBoxCarFollowModel->enable();
1737 for (
const auto& row : myRows) {
1746 myVehicleTypeDialog->myVehicleTypeValid =
true;
1749 if (myVehicleTypeDialog->myEditedDemandElement->isValid(
SUMO_ATTR_CAR_FOLLOW_MODEL, myComboBoxCarFollowModel->getText().text())) {
1750 myComboBoxCarFollowModel->setTextColor(FXRGB(0, 0, 0));
1751 myVehicleTypeDialog->myEditedDemandElement->setAttribute(
SUMO_ATTR_CAR_FOLLOW_MODEL, myComboBoxCarFollowModel->getText().text(), myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
1753 myComboBoxCarFollowModel->setTextColor(FXRGB(255, 0, 0));
1754 myVehicleTypeDialog->myVehicleTypeValid =
false;
1758 for (
const auto& row : myRows) {
1813 WRITE_DEBUG(
"Opening FXMessageBox of type 'warning'");
1818 FXMessageBox::warning(getApp(), MBOX_OK,
1819 (
"Error " + operation1 +
" " + tagString).c_str(),
"%s",
1820 (tagString +
" cannot be " + operation2 +
1822 " is invalid.").c_str());
1824 WRITE_DEBUG(
"Closed FXMessageBox of type 'warning' with 'OK'");
1830 getApp()->stopModal(
this, TRUE);
1841 getApp()->stopModal(
this, FALSE);
1863 myCarFollowingModelParametersParent(carFollowingModelParametersParent),
1865 myTextField(nullptr) {
1874 if (myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, myTextField->getText().text())) {
1876 if (myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty().getDefaultValue(myAttr) != myTextField->getText().text()) {
1877 myTextField->setTextColor(FXRGB(0, 0, 0));
1879 myTextField->setTextColor(FXRGB(195, 195, 195));
1881 myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, myTextField->getText().text(),
1882 myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
1886 myTextField->setTextColor(FXRGB(255, 0, 0));
1888 myCarFollowingModelParametersParent->myVehicleTypeDialog->myVehicleTypeValid =
false;
1889 myCarFollowingModelParametersParent->myVehicleTypeDialog->myInvalidAttr = myAttr;
1897 myTextField->setText(myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
1899 if (myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty().getDefaultValue(myAttr) != myTextField->getText().text()) {
1900 myTextField->setTextColor(FXRGB(0, 0, 0));
1902 myTextField->setTextColor(FXRGB(195, 195, 195));
FXDEFMAP(GNEVehicleTypeDialog::VTypeAttributes) VTypeAttributesMap[]
@ MID_GNE_SET_ATTRIBUTE
attribute edited
@ MID_GNE_OPEN_PARAMETERS_DIALOG
open parameters dialog
@ MID_GNE_SET_ATTRIBUTE_DIALOG
attribute edited trough dialog
#define GUIDesignTextFieldFixed(width)
text field with fixed width
#define GUIDesignComboBox
#define GUIDesignComboBoxWidth180
comboBox with thick frame, width 180
#define GUIDesignComboBoxNCol
number of column of every combo box
#define GUIDesignAuxiliarHorizontalFrame
design for auxiliar (Without borders) horizontal frame used to pack another frames
#define GUIDesignLabelTickedIcon180x46
label ticked filled extended over frame used for VClasses/VShapes. (can be used by icons of 64x32 pix...
#define GUIDesignLabelAboutInfoCenter
label extended over frame with thick and with text justify to center
#define GUIDesignComboBoxVisibleItemsMedium
combo box medium small
#define GUIDesignTextFieldNCol
Num of column of text field.
#define GUIDesignGroupBoxFrame
Group box design extended over frame.
#define GUIDesignAuxiliarVerticalFrame
design for auxiliar (Without borders) horizontal frame used to pack another frames
#define GUIDesignButtonFixed(width)
button rectangular with thick and raise frame with the given width
#define GUIDesignAuxiliarFrame
design for auxiliar (Without borders) frame extended in all directions
#define GUIDesignLabelThickedFixed(width)
label thicked, icon before text, text centered and custom width
FXString gCurrentFolder
The folder used as last.
@ VSHAPE_PASSENGER_HATCHBACK
@ VSHAPE_TRUCK_SEMITRAILER
SUMOVehicleShape getVehicleShapeID(const std::string &name)
Returns the class id of the shape class given by its name.
StringBijection< SUMOVehicleClass > SumoVehicleClassStrings(sumoVehicleClassStringInitializer, SVC_CUSTOM2, false)
StringBijection< SUMOVehicleShape > SumoVehicleShapeStrings(sumoVehicleShapeStringInitializer, SUMOVehicleShape::UNKNOWN, false)
@ RICKSHAW
render as a rickshaw
@ RAIL_CARGO
render as a cargo train
@ EMERGENCY
render as an emergency vehicle
@ PASSENGER_VAN
render as a van
@ PASSENGER
render as a passenger vehicle
@ SCOOTER
render as a scooter
@ RAIL_CAR
render as a (city) rail without locomotive
@ SHIP
render as a arbitrary ship
@ DELIVERY
render as a delivery vehicle
@ BICYCLE
render as a bicycle
@ MOTORCYCLE
render as a motorcycle
@ BUS_TROLLEY
render as a trolley bus
@ TAXI
automated car (with cruise controllers)
@ E_VEHICLE
render as a (futuristic) e-vehicle
@ ANT
render as a giant ant
@ TRUCK
render as a transport vehicle
@ AIRCRAFT
render as aircraft
@ FIREBRIGADE
render as a fire brigade
@ PASSENGER_HATCHBACK
render as a hatchback passenger vehicle ("Fliessheck")
@ BUS_FLEXIBLE
render as a flexible city bus
@ TRUCK_1TRAILER
render as a transport vehicle with one trailer
@ PASSENGER_SEDAN
render as a sedan passenger vehicle ("Stufenheck")
@ BUS_COACH
render as a coach
@ POLICE
render as a police car
@ PASSENGER_WAGON
render as a wagon passenger vehicle ("Combi")
@ TRUCK_SEMITRAILER
render as a semi-trailer transport vehicle ("Sattelschlepper")
@ PEDESTRIAN
render as a pedestrian
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
@ SVC_SHIP
is an arbitrary ship
@ SVC_PRIVATE
private vehicles
@ SVC_HOV
vehicle is a HOV
@ SVC_TRUCK
vehicle is a large transport vehicle
@ SVC_CUSTOM2
is a user-defined type
@ SVC_RAIL
vehicle is a not electrified rail
@ SVC_COACH
vehicle is a coach
@ SVC_PASSENGER
vehicle is a passenger car (a "normal" car)
@ SVC_BICYCLE
vehicle is a bicycle
@ SVC_RAIL_FAST
vehicle that is allowed to drive on high-speed rail tracks
@ SVC_TRAILER
vehicle is a large transport vehicle
@ SVC_CUSTOM1
is a user-defined type
@ SVC_RAIL_ELECTRIC
rail vehicle that requires electrified tracks
@ SVC_DELIVERY
vehicle is a small delivery vehicle
@ SVC_RAIL_URBAN
vehicle is a city rail
@ SVC_MOTORCYCLE
vehicle is a motorcycle
@ SVC_EMERGENCY
public emergency vehicles
@ SVC_MOPED
vehicle is a moped
@ SVC_AUTHORITY
authorities vehicles
@ SVC_TRAM
vehicle is a light rail
@ SVC_TAXI
vehicle is a taxi
@ SVC_BUS
vehicle is a bus
@ SVC_E_VEHICLE
is an electric vehicle
@ SVC_PEDESTRIAN
pedestrian
@ SUMO_TAG_CF_KRAUSS_PLUS_SLOPE
@ SUMO_TAG_CF_PWAGNER2009
@ SUMO_TAG_CF_KRAUSS_ORIG1
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
@ SUMO_ATTR_CF_EIDM_T_ACC_MAX
@ SUMO_ATTR_CF_EIDM_EPSILON_ACC
@ SUMO_ATTR_EMISSIONCLASS
@ SUMO_ATTR_JM_IGNORE_FOE_SPEED
@ SUMO_ATTR_JM_IGNORE_KEEPCLEAR_TIME
@ SUMO_ATTR_CF_EIDM_T_LOOK_AHEAD
@ SUMO_ATTR_CF_WIEDEMANN_SECURITY
@ SUMO_ATTR_LCA_ASSERTIVE
@ SUMO_ATTR_CF_EIDM_USEVEHDYNAMICS
@ SUMO_ATTR_CF_IDMM_ADAPT_TIME
@ SUMO_ATTR_LANE_CHANGE_MODEL
@ SUMO_ATTR_CF_KERNER_PHI
@ SUMO_ATTR_LCA_TURN_ALIGNMENT_DISTANCE
@ SUMO_ATTR_CF_EIDM_C_COOLNESS
@ SUMO_ATTR_CF_EIDM_SIG_ERROR
@ SUMO_ATTR_LCA_LOOKAHEADLEFT
@ SUMO_ATTR_APPARENTDECEL
@ SUMO_ATTR_LCA_SPEEDGAIN_PARAM
@ SUMO_ATTR_ACTIONSTEPLENGTH
@ SUMO_ATTR_LCA_IMPATIENCE
@ GNE_ATTR_PARAMETERS
parameters "key1=value1|key2=value2|...|keyN=valueN"
@ SUMO_ATTR_JM_DRIVE_AFTER_RED_TIME
@ SUMO_ATTR_LOADING_DURATION
@ SUMO_ATTR_CF_EIDM_MAX_VEH_PREVIEW
@ SUMO_ATTR_LCA_MAXSPEEDLATFACTOR
@ SUMO_ATTR_CF_EIDM_T_REACTION
@ SUMO_ATTR_CF_EIDM_T_PERSISTENCE_ESTIMATE
@ SUMO_ATTR_CF_PWAGNER2009_TAULAST
@ SUMO_ATTR_CF_EIDM_SIG_GAP
@ SUMO_ATTR_CAR_FOLLOW_MODEL
@ SUMO_ATTR_CF_EIDM_JERK_MAX
@ SUMO_ATTR_LCA_MAXSPEEDLATSTANDING
@ SUMO_ATTR_JM_DRIVE_AFTER_YELLOW_TIME
@ SUMO_ATTR_LCA_KEEPRIGHT_PARAM
@ SUMO_ATTR_DESIRED_MAXSPEED
@ SUMO_ATTR_JM_IGNORE_FOE_PROB
@ SUMO_ATTR_CONTAINER_CAPACITY
@ SUMO_ATTR_LCA_COOPERATIVE_PARAM
@ SUMO_ATTR_LCA_OPPOSITE_PARAM
@ SUMO_ATTR_EMERGENCYDECEL
@ SUMO_ATTR_LCA_OVERTAKE_DELTASPEED_FACTOR
@ SUMO_ATTR_LCA_SUBLANE_PARAM
@ SUMO_ATTR_JM_CROSSING_GAP
@ SUMO_ATTR_CARRIAGE_LENGTH
@ SUMO_ATTR_CF_IDM_STEPPING
@ SUMO_ATTR_CF_IDMM_ADAPT_FACTOR
@ SUMO_ATTR_COLLISION_MINGAP_FACTOR
@ SUMO_ATTR_BOARDING_DURATION
@ SUMO_ATTR_CF_EIDM_M_FLATNESS
@ SUMO_ATTR_JM_SIGMA_MINOR
@ SUMO_ATTR_CF_EIDM_M_BEGIN
@ SUMO_ATTR_CF_EIDM_T_PERSISTENCE_DRIVE
@ SUMO_ATTR_CF_EIDM_SIG_LEADER
@ SUMO_ATTR_COLOR
A color information.
@ SUMO_ATTR_CF_PWAGNER2009_APPROB
@ SUMO_ATTR_LCA_OVERTAKE_RIGHT
@ SUMO_ATTR_LCA_ACCEL_LAT
@ SUMO_ATTR_LCA_STRATEGIC_PARAM
@ SUMO_ATTR_PERSON_CAPACITY
@ SUMO_ATTR_LCA_KEEPRIGHT_ACCEPTANCE_TIME
@ SUMO_ATTR_LOCOMOTIVE_LENGTH
@ SUMO_ATTR_NOTHING
invalid attribute, must be the last one
@ SUMO_ATTR_JM_DRIVE_RED_SPEED
@ SUMO_ATTR_LCA_TIME_TO_IMPATIENCE
@ SUMO_ATTR_JM_TIMEGAP_MINOR
@ SUMO_ATTR_CF_WIEDEMANN_ESTIMATION
@ SUMO_ATTR_LCA_SPEEDGAINRIGHT
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
std::vector< double > & getParameter()
Returns the parameters of this distribution.
virtual bool isAttributeEnabled(SumoXMLAttr key) const
const std::string & getTagStr() const
get tag assigned to this object in string format
GNENet * getNet() const
get pointer to net
Dialog to edit sequences, parameters, etc.. of DemandElements.
void acceptChanges()
Accept changes did in this dialog.
GNEDemandElement * myEditedDemandElement
pointer to edited additional
FXVerticalFrame * myContentFrame
frame for contents
bool myUpdatingElement
flag to indicate if additional are being created or modified (cannot be changed after open dialog)
FXint openAsModalDialog(FXuint placement=PLACEMENT_CURSOR)
execute dialog as modal
void initChanges()
init a new group of changes that will be do it in dialog
void cancelChanges()
Cancel changes did in this dialog.
void changeDemandElementDialogHeader(const std::string &newHeader)
change additional dialog header
void resetChanges()
reset changes did in this dialog.
virtual SUMOVehicleClass getVClass() const =0
obtain VClass related with this demand element
virtual std::string getAttribute(SumoXMLAttr key) const =0
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
virtual bool isValid(SumoXMLAttr key, const std::string &value)=0
method for checking if the key and their conrrespond attribute are valids
GNEViewNet * getViewNet() const
get view net
Dialog for edit parameters.
void add(GNEChange *command, bool doit=false, bool merge=true)
Add new command, executing it if desired. The new command will be merged with the previous command if...
class used for represent rows with Car Following Model parameters
FXTextField * myTextField
text field
void setVariable()
set Variable in VehicleType
CarFollowingModelRow(CarFollowingModelParameters *carFollowingModelParametersParent, FXVerticalFrame *verticalFrame, SumoXMLAttr attr)
constructor
void updateValue()
update value of Vehicle Type
class for CarFollowingModel
CarFollowingModelRow * myPhiRow
Row for MinGap (only for Kerner)
CarFollowingModelRow * myW99CC1
Row for W99 CC 01.
CarFollowingModelRow * myTpreviewRow
Row for Look ahead/preview Time.
CarFollowingModelRow * myW99CC8
Row for W99 CC 08.
CarFollowingModelRow * myW99CC6
Row for W99 CC 06.
CarFollowingModelRow * mySteppingRow
Row for MinGap(only for IDM)
CarFollowingModelRow * myMflatnessRow
Row for Startup M flatness.
CarFollowingModelRow * myTmp4Row
Row for TMP4.
CarFollowingModelRow * myW99CC3
Row for W99 CC 03.
CarFollowingModelRow * myTmp1Row
Row for TMP1.
CarFollowingModelRow * myW99CC2
Row for W99 CC 02.
CarFollowingModelRow * myTreactionRow
Row for Reaction Time.
FXLabel * myLabelIncompleteAttribute
temporal label for incomplete attributes
CarFollowingModelRow * myCcoolnessRow
Row for Coolness parameter.
CarFollowingModelRow * mySigmagapRow
Row for Gap estimation error.
CarFollowingModelRow * mySecurityRow
Row for Security (only for Wiedemann)
CarFollowingModelRow * myW99CC7
Row for W99 CC 07.
CarFollowingModelRow * myW99CC5
Row for W99 CC 05.
CarFollowingModelRow * myTmp5Row
Row for TMP5.
CarFollowingModelRow * myAccelRow
Row for Accel.
CarFollowingModelRow * myEpsilonaccRow
Row for AP Driver Update threshold.
CarFollowingModelRow * myAprobRow
Row for Aprob.
CarFollowingModelRow * myW99CC9
Row for W99 CC 09.
CarFollowingModelRow * myKRow
Row for MinGap (only for Kerner)
CarFollowingModelRow * myTPersDriveRow
Row for Wiener Process Driving Error.
long onCmdSetVariable(FXObject *, FXSelector, void *)
void updateValues()
update values
CarFollowingModelRow * myTmp3Row
Row for TMP3.
CarFollowingModelRow * myMaxVehPreviewRow
Row for Using vehicle preview.
CarFollowingModelRow * myAdaptFactorRow
Row for Adapt Factor.
CarFollowingModelRow * myTmp2Row
Row for TMP2.
CarFollowingModelRow * myTauRow
Row for Tau.
CarFollowingModelRow * myTPersEstimateRow
Row for Wiener Process Estimation Error.
MFXComboBoxIcon * myComboBoxCarFollowModel
Row for CarFollowModel.
CarFollowingModelRow * myJerkmaxRow
Row for max jerk.
FXVerticalFrame * myVerticalFrameRows
Vertical Frame for CarFollowingModelRow.
CarFollowingModelRow * myTaccmaxRow
Row for Startup Time to acc_max.
CarFollowingModelRow * myApparentDecelRow
Row for apparent Decel.
CarFollowingModelRow * myDecelRow
Row for Decel.
CarFollowingModelRow * myW99CC4
Row for W99 CC 04.
std::vector< CarFollowingModelRow * > myRows
vector with the Car Following Model Row
CarFollowingModelRow * myEmergencyDecelRow
Row for emergency Decel.
CarFollowingModelRow * mySigmaleaderRow
Row for leader speed estimation error.
CarFollowingModelRow * myTrainTypeRow
Row for TrainType.
void refreshCFMFields()
refresh Car Following Model Fields
CarFollowingModelRow * myEstimationRow
Row for Estimation (only for Wiedemann)
CarFollowingModelRow * mySigmaRow
Row for Sigma.
CarFollowingModelRow * myMbeginRow
Row for Startup M begin.
CarFollowingModelRow * mySigmaerrorRow
Row for Driving Error.
CarFollowingModelRow * myAdaptTimeRow
Row for Adapt Time.
CarFollowingModelRow * myDeltaRow
Row for MinGap (only for IDM)
CarFollowingModelRow * myTrauLastRow
Row for TauLast.
CarFollowingModelRow * myUseVehDynamicsRow
Row for Using vehicle dynamics.
CarFollowingModelParameters(GNEVehicleTypeDialog *vehicleTypeDialog, FXHorizontalFrame *column)
FOX-declaration.
CarFollowingModelRow * myMinGapFactorRow
Row for MinGapFactor.
SUMOVehicleClass setVariable()
set vehicle class
VTypeAttributes * myVTypeAttributesParent
pointer to VTypeAttributes parent
SUMOVehicleClass updateValue()
update values
void setVClassLabelImage()
set VClass texture
MFXComboBoxIcon * myComboBoxVClass
MFXComboBoxIcon for VClass.
MFXComboBoxIcon * myComboBoxShape
MFXComboBoxIcon for Shape.
FXLabel * myComboBoxShapeLabelImage
label with image of Shape
void setVShapeLabelImage()
set VShape texture
void updateValues()
update values
void setVariable()
set variables
VShapeRow(VTypeAttributes *VTypeAttributesParent, FXVerticalFrame *column)
constructor
void updateValue(SUMOVehicleClass vClass)
update value
class used for represent rows with Vehicle Type parameters
VTypeAttributeRow(VTypeAttributes *VTypeAttributesParent, FXVerticalFrame *verticalFrame, const SumoXMLAttr attr, const RowAttrType rowAttrType, const std::vector< std::string > &values={})
constructor
FXTextField * myTextField
text field
void openImageFileDialog()
open image file dialog
MFXComboBoxIcon * myComboBox
ComboBox for attributes with limited values.
std::string getParametersStr() const
get parameters as string
void updateValue()
update value of Vehicle Type (using default value obtained from GNEAttributeCarrier)
RowAttrType
Attribute type.
void setVariable()
set Variable in VehicleType (using default value obtained from GNEAttributeCarrier)
const FXButton * getButton() const
get button
std::vector< std::pair< std::string, std::string > > getParametersVectorStr() const
get parameters as vector of strings
FXButton * myButton
button
void setParameters(const std::vector< std::pair< std::string, std::string > > ¶meters)
set parameters
std::string filterAttributeName(const SumoXMLAttr attr) const
filter attribute name
void openOSGFileDialog()
open OSG file dialog
void openColorDialog()
open color dialog
GNEVehicleTypeDialog * myVehicleTypeDialog
VTypeAttributeRow for experimental.
VTypeAttributeRow * myHeight
VTypeAttributeRow for Height.
VTypeAttributeRow * myContainerCapacity
VTypeAttributeRow for ContainerCapacity.
VTypeAttributeRow * myMaxSpeed
VTypeAttributeRow for MaxSpeed.
void buildAttributesA(FXVerticalFrame *column)
build common attributes (A)
VTypeAttributeRow * myMinGap
VTypeAttributeRow for MinGap.
VTypeAttributeRow * myOSGFile
VTypeAttributeRow for OSG.
VTypeAttributeRow * myParameters
VTypeAttributeRow for parameters.
void buildJunctionModelAttributesA(FXVerticalFrame *column)
build JunctionModel attributes (A)
VTypeAttributeRow * myEmissionClass
VTypeAttributeRow for EmissionClass.
VTypeAttributeRow * myCarriageLength
VTypeAttributeRow for carriage length.
void updateValues()
update values
VTypeAttributeRow * mySpeedFactor
VTypeAttributeRow for SpeedFactor.
long onCmdOpenAttributeDialog(FXObject *obj, FXSelector, void *)
@event called after press a button dialog
void buildJunctionModelAttributesB(FXVerticalFrame *column)
build JunctionModel attributes (B)
void buildAttributesB(FXVerticalFrame *column)
build common attributes (B)
VTypeAttributeRow * myLocomotiveLength
VTypeAttributeRow for locomotive length.
long onCmdSetAttribute(FXObject *, FXSelector, void *)
VShapeRow * myVShapeRow
vehicle shape row
VTypeAttributeRow * myWidth
VTypeAttributeRow for Width.
VTypeAttributeRow * myPersonCapacity
VTypeAttributeRow for PersonCapacity.
void buildLaneChangeModelAttributes(FXVerticalFrame *column)
build LaneChangeModel attributes
VTypeAttributeRow * myDesiredMaxSpeed
VTypeAttributeRow for desired max speed.
long onCmdOpenParametersEditor(FXObject *obj, FXSelector, void *)
@event called after press a button dialog
VTypeAttributes(GNEVehicleTypeDialog *vehicleTypeDialog, FXHorizontalFrame *column)
constructor
VTypeAttributeRow * myLength
VTypeAttributeRow for Length.
Dialog for editing calibrator vehicle types.
~GNEVehicleTypeDialog()
destructor
long onCmdCancel(FXObject *, FXSelector, void *)
event after press cancel button
SumoXMLAttr myInvalidAttr
current sumo attribute invalid
bool myVehicleTypeValid
flag to check if current vehicleType is valid
VTypeAttributes * myVTypeAttributes
Vehicle Type Common Attributes.
long onCmdReset(FXObject *, FXSelector, void *)
event after press reset button
CarFollowingModelParameters * myCarFollowingModelParameters
Car Following model parameters.
GNEVehicleTypeDialog(GNEDemandElement *editedVehicleType, bool updatingElement)
constructor
long onCmdAccept(FXObject *, FXSelector, void *)
GNEUndoList * getUndoList() const
get the undoList object
static FXLabel * buildFXLabel(FXComposite *p, const std::string &text, const std::string &tip, const std::string &help, FXIcon *ic, FXuint opts, FXint x=0, FXint y=0, FXint w=0, FXint h=0, FXint pl=DEFAULT_PAD, FXint pr=DEFAULT_PAD, FXint pt=DEFAULT_PAD, FXint pb=DEFAULT_PAD)
Construct label with given text and icon.
static FXButton * buildFXButton(FXComposite *p, const std::string &text, const std::string &tip, const std::string &help, FXIcon *ic, FXObject *tgt, FXSelector sel, FXuint opts=BUTTON_NORMAL, FXint x=0, FXint y=0, FXint w=0, FXint h=0, FXint pl=DEFAULT_PAD, FXint pr=DEFAULT_PAD, FXint pt=DEFAULT_PAD, FXint pb=DEFAULT_PAD)
build button
static FXIcon * getIcon(const GUIIcon which)
returns a icon previously defined in the enum GUIIcon
FXString getText() const
Get the text.
void setTextColor(FXColor clr)
Change text color.
FXint appendIconItem(const FXString &text, FXIcon *icon=nullptr, FXColor bgColor=FXRGB(255, 255, 255), void *ptr=nullptr)
append icon item in the last position
static FXColor getFXColor(const RGBColor &col)
converts FXColor to RGBColor
static RGBColor getRGBColor(FXColor col)
converts FXColor to RGBColor
static const std::vector< std::string > & getAllClassesStr()
Get all SUMOEmissionClass in string format.
static const RGBColor BLACK
static std::vector< std::string > getLatAlignmentStrings()
return all valid strings for latAlignment
static StringBijection< SumoXMLTag > CarFollowModels
car following models
static StringBijection< LaneChangeModel > LaneChangeModels
lane change models
std::vector< std::string > getStrings() const
std::vector< std::string > getVector()
return vector of strings
bool hasNext()
returns the information whether further substrings exist
std::string next()
returns the next substring when it exists. Otherwise the behaviour is undefined
static FXIcon * getVClassIcon(const SUMOVehicleClass vc)
returns icon associated to the given vClass
auto get(const nlohmann::detail::iteration_proxy_value< IteratorType > &i) -> decltype(i.key())
struct for default values that depend of VClass
double height
This class' height.
int personCapacity
The person capacity of the vehicle.
double carriageLength
the length of train carriages
double desiredMaxSpeed
The vehicle type's desired maximum speed [m/s].
std::string osgFile
3D model file for this class
SUMOEmissionClass emissionClass
The emission class of this vehicle.
double minGap
This class' free space in front of the vehicle itself.
int containerCapacity
The container capacity of the vehicle.
double maxSpeed
The vehicle type's maximum speed [m/s] (technical limit, not subject to speed deviation)
Distribution_Parameterized speedFactor
The factor by which the maximum speed may deviate from the allowed max speed on the street.
double width
This class' width.
double length
The physical vehicle length.
SUMOVehicleShape shape
This class' shape.
LatAlignmentDefinition latAlignmentProcedure
the lateral alignment procedure
double locomotiveLength
the length of train locomotive