67 myVTypeAttributesParent(VTypeAttributesParent) {
75 myComboBoxVClassLabelImage->setBackColor(FXRGBA(255, 255, 255, 255));
77 for (
const auto& vClass : myVTypeAttributesParent->myVehicleTypeDialog->getEditedDemandElement()->getTagProperty()->getAttributeProperties(
SUMO_ATTR_VCLASS)->getDiscreteValues()) {
157 const auto vClass = myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(
SUMO_ATTR_VCLASS);
159 for (
int i = 0; i < myComboBoxVClass->getNumItems(); i++) {
160 if (myComboBoxVClass->getItemText(i) == vClass) {
164 myComboBoxVClass->setCurrentItem(index);
165 setVClassLabelImage();
166 return myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getVClass();
173 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(
SUMO_ATTR_VCLASS).empty()) {
177 switch (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getVClass()) {
290 myVTypeAttributesParent(VTypeAttributesParent) {
302 for (
const auto& VShapeString : VShapeStrings) {
313 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(
SUMO_ATTR_GUISHAPE, myComboBoxShape->getText().text())) {
314 myComboBoxShape->setTextColor(FXRGB(0, 0, 0));
315 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(
SUMO_ATTR_GUISHAPE, myComboBoxShape->getText().text(),
316 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
317 setVShapeLabelImage();
319 myComboBoxShape->setTextColor(FXRGB(255, 0, 0));
320 myVTypeAttributesParent->myVehicleTypeDialog->myVehicleTypeValid =
false;
329 const int index = myComboBoxShape->findItem(myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(
SUMO_ATTR_GUISHAPE).c_str());
331 myComboBoxShape->setCurrentItem(0);
333 myComboBoxShape->setCurrentItem(index);
335 setVShapeLabelImage();
346 myComboBoxShape->setCurrentItem(0);
348 myComboBoxShape->setCurrentItem(index);
350 myComboBoxShape->setTextColor(FXRGB(0, 0, 0));
351 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(
SUMO_ATTR_GUISHAPE, myComboBoxShape->getText().text(),
352 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
353 setVShapeLabelImage();
466 myVTypeAttributesParent(VTypeAttributesParent),
468 myRowAttrType(rowAttrType),
470 myTextField(nullptr),
471 myComboBox(nullptr) {
490 for (
const auto& value : values) {
501 if (myRowAttrType == ROWTYPE_COMBOBOX) {
503 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, myComboBox->getText().text())) {
504 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, myComboBox->getText().text(),
505 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
509 myComboBox->setTextColor(FXRGB(255, 0, 0));
511 myVTypeAttributesParent->myVehicleTypeDialog->myVehicleTypeValid =
false;
512 myVTypeAttributesParent->myVehicleTypeDialog->myInvalidAttr = myAttr;
514 }
else if (myRowAttrType == ROWTYPE_COLOR) {
516 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(
SUMO_ATTR_COLOR, myTextField->getText().text())) {
518 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty()->getDefaultStringValue(
SUMO_ATTR_COLOR) != myTextField->getText().text()) {
519 myTextField->setTextColor(FXRGB(0, 0, 0));
521 myTextField->setTextColor(FXRGB(195, 195, 195));
523 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(
SUMO_ATTR_COLOR, myTextField->getText().text(), myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
525 myTextField->setTextColor(FXRGB(255, 0, 0));
526 myVTypeAttributesParent->myVehicleTypeDialog->myVehicleTypeValid =
false;
527 myVTypeAttributesParent->myVehicleTypeDialog->myInvalidAttr =
SUMO_ATTR_COLOR;
531 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, myTextField->getText().text())) {
532 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, myTextField->getText().text(),
533 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
537 myTextField->setTextColor(FXRGB(255, 0, 0));
539 myVTypeAttributesParent->myVehicleTypeDialog->myVehicleTypeValid =
false;
540 myVTypeAttributesParent->myVehicleTypeDialog->myInvalidAttr = myAttr;
550 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, myComboBox->getText().text())) {
551 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, myComboBox->getText().text(),
552 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
554 updateValue(defaultValue);
556 myComboBox->setTextColor(FXRGB(255, 0, 0));
558 myVTypeAttributesParent->myVehicleTypeDialog->myVehicleTypeValid =
false;
559 myVTypeAttributesParent->myVehicleTypeDialog->myInvalidAttr = myAttr;
563 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, myTextField->getText().text())) {
564 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, myTextField->getText().text(),
565 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
567 updateValue(defaultValue);
569 myTextField->setTextColor(FXRGB(255, 0, 0));
571 myVTypeAttributesParent->myVehicleTypeDialog->myVehicleTypeValid =
false;
572 myVTypeAttributesParent->myVehicleTypeDialog->myInvalidAttr = myAttr;
580 if (myRowAttrType == ROWTYPE_COMBOBOX) {
582 const int index = myComboBox->findItem(myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
584 myComboBox->disable();
586 myComboBox->setCurrentItem(index);
587 myComboBox->enable();
590 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty()->getDefaultStringValue(myAttr) != myComboBox->getText().text()) {
591 myComboBox->setTextColor(FXRGB(0, 0, 0));
593 myComboBox->setTextColor(FXRGB(195, 195, 195));
595 }
else if (myRowAttrType == ROWTYPE_COLOR) {
597 myTextField->setText(myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
599 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty()->getDefaultStringValue(myAttr) != myTextField->getText().text()) {
600 myTextField->setTextColor(FXRGB(0, 0, 0));
602 myTextField->setTextColor(FXRGB(195, 195, 195));
606 const std::string& parametersStr = myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr);
608 myTextField->setText(parametersStr.c_str());
610 myTextField->setTextColor(FXRGB(0, 0, 0));
619 if (keyValue.size() == 2) {
625 myTextField->setText(myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
627 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty()->getDefaultStringValue(myAttr) != myTextField->getText().text()) {
628 myTextField->setTextColor(FXRGB(0, 0, 0));
630 myTextField->setTextColor(FXRGB(195, 195, 195));
640 const int index = myComboBox->findItem(myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
642 myComboBox->disable();
644 myComboBox->setCurrentItem(index);
645 myComboBox->enable();
648 if (defaultValue != myComboBox->getText().text()) {
649 myComboBox->setTextColor(FXRGB(0, 0, 0));
651 myComboBox->setTextColor(FXRGB(195, 195, 195));
655 myTextField->setText(myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
657 if (defaultValue != myTextField->getText().text()) {
658 myTextField->setTextColor(FXRGB(0, 0, 0));
660 myTextField->setTextColor(FXRGB(195, 195, 195));
674 const auto editedDemandElement = myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement;
676 if (editedDemandElement->getNet()->getViewNet()->getViewParent()->getGNEAppWindows()->getInternalTest()) {
680 FXColorDialog colordialog(
this,
TL(
"Color Dialog"));
681 colordialog.setTarget(
this);
684 if (GNEAttributeCarrier::canParse<RGBColor>(myTextField->getText().text())) {
685 colordialog.setRGBA(
MFXUtils::getFXColor(GNEAttributeCarrier::parse<RGBColor>(myTextField->getText().text())));
690 if (colordialog.execute() == 1) {
692 myTextField->setText(newValue.c_str());
693 if (editedDemandElement->isValid(myAttr, newValue)) {
694 editedDemandElement->setAttribute(myAttr, newValue, editedDemandElement->getNet()->getViewNet()->getUndoList());
696 myTextField->setTextColor(FXRGB(0, 0, 0));
697 myTextField->killFocus();
707 FXFileDialog opendialog(
this,
TL(
"Open Image"));
709 opendialog.setSelectMode(SELECTFILE_EXISTING);
714 if (opendialog.execute()) {
718 std::string imagePath = opendialog.getFilename().text();
720 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, imagePath)) {
721 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, imagePath, myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
722 myTextField->setText(imagePath.c_str());
724 myTextField->setTextColor(FXRGB(0, 0, 0));
725 myTextField->killFocus();
734 FXFileDialog opendialog(
this,
TL(
"Open OSG File"));
736 opendialog.setSelectMode(SELECTFILE_EXISTING);
741 if (opendialog.execute()) {
745 std::string imagePath = opendialog.getFilename().text();
747 if (myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, imagePath)) {
748 myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, imagePath, myVTypeAttributesParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
749 myTextField->setText(imagePath.c_str());
751 myTextField->setTextColor(FXRGB(0, 0, 0));
752 myTextField->killFocus();
760 return myTextField->getText().text();
764std::vector<std::pair<std::string, std::string> >
766 std::vector<std::pair<std::string, std::string> > result;
769 result.push_back(std::make_pair(parameter.first, parameter.second));
782 for (
const auto& parameter : parameters) {
784 result += parameter.first +
"=" + parameter.second +
"|";
789 if (!result.empty()) {
793 myTextField->setText(result.c_str());
802 return "crossingGap";
804 return "driveAfterYellowTime";
806 return "driveAfterRedTime";
808 return "driveRedSpeed";
810 return "ignoreKeepClearTime";
812 return "ignoreFoeSpeed";
814 return "ignoreFoeProb";
818 return "timegapMinor";
823 return "cooperative";
841 return "timeToImpatience";
845 return "lookaheadLeft";
847 return "speedGainRight";
849 return "maxSpeedLatStanding";
851 return "maxSpeedLatFactor";
853 return "turnAlignDistance";
855 return "overtakeRight";
857 return "keepRightAcceptanceTime";
859 return "overtakeDeltaSpeedFactor";
879 FXGroupBox* commonAttributes =
new FXGroupBox(firstAuxiliarVerticalFrame,
"Vehicle Type attributes",
GUIDesignGroupBoxFrame);
887 FXGroupBox* JMAttributes =
new FXGroupBox(firstAuxiliarVerticalFrame,
"Junction Model attributes",
GUIDesignGroupBoxFrame);
895 FXGroupBox* LCMAttributes =
new FXGroupBox(firstAuxiliarHorizontalFrame,
"Lane Change Model attributes",
GUIDesignGroupBoxFrame);
904 myVClassRow =
new VClassRow(
this, column);
952 myVShapeRow =
new VShapeRow(
this, column);
1104 myTextFieldVehicleTypeID->setText(myVehicleTypeDialog->myEditedDemandElement->getAttribute(
SUMO_ATTR_ID).c_str());
1107 myVShapeRow->updateValues();
1109 myLaneChangeModel->updateValue();
1111 myColor->updateValue();
1118 myWidth->updateValue(
toString(defaultVTypeParameters.
width));
1120 myFilename->updateValue();
1130 myBoardingDuration->updateValue();
1131 myLoadingDuration->updateValue();
1132 myMinGapLat->updateValue();
1133 myMaxSpeedLat->updateValue();
1134 myActionStepLength->updateValue();
1135 myProbability->updateValue();
1137 myJMCrossingGap->updateValue();
1138 myJMIgnoreKeepclearTime->updateValue();
1139 myJMDriveAfterYellowTime->updateValue();
1140 myJMDriveAfterRedTime->updateValue();
1141 myJMDriveRedSpeed->updateValue();
1142 myJMIgnoreFoeProb->updateValue();
1143 myJMIgnoreFoeSpeed->updateValue();
1144 myJMSigmaMinor->updateValue();
1145 myJMTimeGapMinor->updateValue();
1146 myJMImpatience->updateValue();
1148 myLCAStrategicParam->updateValue();
1149 myLCACooperativeParam->updateValue();
1150 myLCASpeedgainParam->updateValue();
1151 myLCAKeeprightParam->updateValue();
1152 myLCASublaneParam->updateValue();
1153 myLCAOppositeParam->updateValue();
1154 myLCAPushy->updateValue();
1155 myLCAPushygap->updateValue();
1156 myLCAAssertive->updateValue();
1157 myLCAImpatience->updateValue();
1158 myLCATimeToImpatience->updateValue();
1159 myLCAAccelLat->updateValue();
1160 myLCALookAheadLeft->updateValue();
1161 myLCASpeedGainRight->updateValue();
1162 myLCAMaxSpeedLatStanding->updateValue();
1163 myLCAMaxSpeedLatFactor->updateValue();
1164 myLCATurnAlignmentDistance->updateValue();
1165 myLCAOvertakeRight->updateValue();
1166 myLCAKeepRightAcceptanceTime->updateValue();
1167 myLCAOvertakeDeltaSpeedFactor->updateValue();
1170 myParameters->updateValue();
1177 myVehicleTypeDialog->myVehicleTypeValid =
true;
1180 if (myVehicleTypeDialog->myEditedDemandElement->isValid(
SUMO_ATTR_ID, myTextFieldVehicleTypeID->getText().text())) {
1181 myTextFieldVehicleTypeID->setTextColor(FXRGB(0, 0, 0));
1182 myVehicleTypeDialog->myEditedDemandElement->setAttribute(
SUMO_ATTR_ID, myTextFieldVehicleTypeID->getText().text(), myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
1183 }
else if (myVehicleTypeDialog->myEditedDemandElement->getAttribute(
SUMO_ATTR_ID) == myTextFieldVehicleTypeID->getText().text()) {
1184 myTextFieldVehicleTypeID->setTextColor(FXRGB(0, 0, 0));
1185 myVehicleTypeDialog->myEditedDemandElement->setAttribute(
SUMO_ATTR_ID, myTextFieldVehicleTypeID->getText().text(), myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
1187 myTextFieldVehicleTypeID->setTextColor(FXRGB(255, 0, 0));
1188 myVehicleTypeDialog->myVehicleTypeValid =
false;
1194 myVShapeRow->setVariable();
1196 myColor->setVariable();
1203 myWidth->setVariable(
toString(defaultVTypeParameters.
width));
1207 myLaneChangeModel->setVariable();
1214 myWidth->setVariable(
toString(defaultVTypeParameters.
width));
1216 myFilename->setVariable();
1226 myBoardingDuration->setVariable();
1227 myLoadingDuration->setVariable();
1228 myMinGapLat->setVariable();
1229 myMaxSpeedLat->setVariable();
1230 myActionStepLength->setVariable();
1231 myProbability->setVariable();
1233 myJMCrossingGap->setVariable();
1234 myJMIgnoreKeepclearTime->setVariable();
1235 myJMDriveAfterYellowTime->setVariable();
1236 myJMDriveAfterRedTime->setVariable();
1237 myJMDriveRedSpeed->setVariable();
1238 myJMIgnoreFoeProb->setVariable();
1239 myJMIgnoreFoeSpeed->setVariable();
1240 myJMSigmaMinor->setVariable();
1241 myJMTimeGapMinor->setVariable();
1242 myJMImpatience->setVariable();
1244 myLCAStrategicParam->setVariable();
1245 myLCACooperativeParam->setVariable();
1246 myLCASpeedgainParam->setVariable();
1247 myLCAKeeprightParam->setVariable();
1248 myLCASublaneParam->setVariable();
1249 myLCAOppositeParam->setVariable();
1250 myLCAPushy->setVariable();
1251 myLCAPushygap->setVariable();
1252 myLCAAssertive->setVariable();
1253 myLCAImpatience->setVariable();
1254 myLCATimeToImpatience->setVariable();
1255 myLCAAccelLat->setVariable();
1256 myLCALookAheadLeft->setVariable();
1257 myLCASpeedGainRight->setVariable();
1258 myLCAMaxSpeedLatStanding->setVariable();
1259 myLCAMaxSpeedLatFactor->setVariable();
1260 myLCATurnAlignmentDistance->setVariable();
1261 myLCAOvertakeRight->setVariable();
1262 myLCAKeepRightAcceptanceTime->setVariable();
1263 myLCAOvertakeDeltaSpeedFactor->setVariable();
1265 myParameters->setVariable();
1273 if (obj == myColor->getButton()) {
1274 myColor->openColorDialog();
1275 }
else if (obj == myFilename->getButton()) {
1276 myFilename->openImageFileDialog();
1277 }
else if (obj == myOSGFile->getButton()) {
1278 myFilename->openOSGFileDialog();
1286 const auto viewNet = myVehicleTypeDialog->getEditedDemandElement()->getNet()->getViewNet();
1288 if (
GNESingleParametersDialog(myParameters, viewNet).openModalDialog(viewNet->getViewParent()->getGNEAppWindows()->getInternalTest())) {
1290 myVehicleTypeDialog->getEditedDemandElement()->setAttribute(
GNE_ATTR_PARAMETERS, myParameters->getParametersStr(), viewNet->getUndoList());
1301 myVehicleTypeDialog(vehicleTypeDialog) {
1314 for (
const auto& CFModel : CFModels) {
1518 for (
const auto& row : myRows) {
1522 myLabelIncompleteAttribute->hide();
1533 myApparentDecelRow->show();
1534 myEmergencyDecelRow->show();
1550 myEmergencyDecelRow->show();
1552 myMinGapFactorRow->show();
1563 myEmergencyDecelRow->show();
1565 myMinGapFactorRow->show();
1566 myTrauLastRow->show();
1573 myEmergencyDecelRow->show();
1575 mySteppingRow->show();
1576 myMinGapFactorRow->show();
1582 myEmergencyDecelRow->show();
1584 mySteppingRow->show();
1585 myMinGapFactorRow->show();
1586 myAdaptFactorRow->show();
1587 myAdaptTimeRow->show();
1593 myEmergencyDecelRow->show();
1595 mySteppingRow->show();
1596 myMinGapFactorRow->show();
1597 myTpreviewRow->show();
1598 myTreactionRow->show();
1599 myTPersDriveRow->show();
1600 myTPersEstimateRow->show();
1601 myCcoolnessRow->show();
1602 mySigmaleaderRow->show();
1603 mySigmagapRow->show();
1604 mySigmaerrorRow->show();
1605 myJerkmaxRow->show();
1606 myEpsilonaccRow->show();
1607 myTaccmaxRow->show();
1608 myMflatnessRow->show();
1609 myMbeginRow->show();
1610 myUseVehDynamicsRow->show();
1611 myMaxVehPreviewRow->show();
1617 myEmergencyDecelRow->show();
1620 myMinGapFactorRow->show();
1626 myEmergencyDecelRow->show();
1627 myMinGapFactorRow->show();
1628 mySecurityRow->show();
1629 myEstimationRow->show();
1644 myTrainTypeRow->show();
1650 myEmergencyDecelRow->show();
1651 myMinGapFactorRow->show();
1653 myLabelIncompleteAttribute->show();
1669 myEmergencyDecelRow->show();
1670 myMinGapFactorRow->show();
1672 myLabelIncompleteAttribute->show();
1695 myLabelIncompleteAttribute->show();
1722 myVerticalFrameRows->recalc();
1731 myComboBoxCarFollowModel->setCurrentItem(0);
1734 const int index = myComboBoxCarFollowModel->findItem(myVehicleTypeDialog->myEditedDemandElement->getAttribute(
SUMO_ATTR_CAR_FOLLOW_MODEL).c_str());
1736 myComboBoxCarFollowModel->disable();
1738 myComboBoxCarFollowModel->setCurrentItem(index);
1739 myComboBoxCarFollowModel->enable();
1745 for (
const auto& row : myRows) {
1754 myVehicleTypeDialog->myVehicleTypeValid =
true;
1757 if (myVehicleTypeDialog->myEditedDemandElement->isValid(
SUMO_ATTR_CAR_FOLLOW_MODEL, myComboBoxCarFollowModel->getText().text())) {
1758 myComboBoxCarFollowModel->setTextColor(FXRGB(0, 0, 0));
1759 myVehicleTypeDialog->myEditedDemandElement->setAttribute(
SUMO_ATTR_CAR_FOLLOW_MODEL, myComboBoxCarFollowModel->getText().text(), myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
1761 myComboBoxCarFollowModel->setTextColor(FXRGB(255, 0, 0));
1762 myVehicleTypeDialog->myVehicleTypeValid =
false;
1766 for (
const auto& row : myRows) {
1824 FXMessageBox::warning(getApp(), MBOX_OK,
1825 (
"Error " + operation1 +
" " + tagString).c_str(),
"%s",
1826 (tagString +
" cannot be " + operation2 +
1828 " is invalid.").c_str());
1834 getApp()->stopModal(
this, TRUE);
1845 getApp()->stopModal(
this, FALSE);
1867 myCarFollowingModelParametersParent(carFollowingModelParametersParent),
1869 myTextField(nullptr) {
1878 if (myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->isValid(myAttr, myTextField->getText().text())) {
1880 if (myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty()->getDefaultStringValue(myAttr) != myTextField->getText().text()) {
1881 myTextField->setTextColor(FXRGB(0, 0, 0));
1883 myTextField->setTextColor(FXRGB(195, 195, 195));
1885 myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->setAttribute(myAttr, myTextField->getText().text(),
1886 myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->getNet()->getViewNet()->getUndoList());
1890 myTextField->setTextColor(FXRGB(255, 0, 0));
1892 myCarFollowingModelParametersParent->myVehicleTypeDialog->myVehicleTypeValid =
false;
1893 myCarFollowingModelParametersParent->myVehicleTypeDialog->myInvalidAttr = myAttr;
1901 myTextField->setText(myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->getAttribute(myAttr).c_str());
1903 if (myCarFollowingModelParametersParent->myVehicleTypeDialog->myEditedDemandElement->getTagProperty()->getDefaultStringValue(myAttr) != myTextField->getText().text()) {
1904 myTextField->setTextColor(FXRGB(0, 0, 0));
1906 myTextField->setTextColor(FXRGB(195, 195, 195));
FXDEFMAP(GNEVehicleTypeDialog::VTypeAttributes) VTypeAttributesMap[]
@ MID_GNE_SET_ATTRIBUTE
attribute edited
@ MID_GNE_ATTRIBUTESEDITOR_PARAMETERS
open generic parameters editor
@ 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 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 GUIDesignComboBoxVisibleItems
#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
StringBijection< SUMOVehicleShape > SumoVehicleShapeStrings(sumoVehicleShapeStringInitializer, SUMOVehicleShape::UNKNOWN, false)
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)
@ 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_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_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)
double getParameter(const int index) const
Returns the nth parameter 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.
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)
long onCmdSetAttribute(FXObject *, FXSelector, void *)
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
static const std::string colorValue
color dialog value
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< OSGFileExtension > OSGFileExtensions
OSG file Extensions.
static StringBijection< ImageFileExtension > ImageFileExtensions
image file extensions
static StringBijection< LaneChangeModel > LaneChangeModels
lane change models
std::vector< std::string > getStrings() const
get all strings
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
struct for default values that depend of VClass
double height
This class' height.
int personCapacity
The person capacity of the vehicle.
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