Browse Source

change tool/map_lanetoxodr. add roadmarkedit.

yuchuli 3 years ago
parent
commit
66ae935eae

+ 90 - 4
src/tool/map_lanetoxodr/dialogeditlane.cpp

@@ -115,30 +115,116 @@ void DialogEditLane::on_comboBox_Width_currentIndexChanged(int index)
 void DialogEditLane::on_pushButton_AddLeftLane_clicked()
 {
     if(mpCurLS == 0)return;
+    std::string strtype = ui->comboBox_LaneType->currentText().toStdString();
+    mpCurLS->AddLane(1,mpCurLS->GetLeftLaneCount()+1,strtype,false);
+    Lane * pLane = mpCurLS->GetLastLeftLane();
+    if(pLane != 0)
+    {
+        double soffoset = ui->lineEdit_sOffset->text().toDouble();
+        double a = ui->lineEdit_a->text().toDouble();
+        double b = ui->lineEdit_b->text().toDouble();
+        double c = ui->lineEdit_c->text().toDouble();
+        double d = ui->lineEdit_d->text().toDouble();
+        pLane->AddWidthRecord(soffoset,a,b,c,d);
+    }
+    on_comboBox_LaneSection_currentIndexChanged(ui->comboBox_LaneSection->currentIndex());
  //   mpCurLS->AddLane()
 }
 
 void DialogEditLane::on_pushButton_AddRIghtLane_clicked()
 {
-
+    if(mpCurLS == 0)return;
+    std::string strtype = ui->comboBox_LaneType->currentText().toStdString();
+    mpCurLS->AddLane(-1,(-1)*(mpCurLS->GetRightLaneCount()+1),strtype,false);
+    Lane * pLane = mpCurLS->GetLastRightLane();
+    if(pLane != 0)
+    {
+        double soffoset = ui->lineEdit_sOffset->text().toDouble();
+        double a = ui->lineEdit_a->text().toDouble();
+        double b = ui->lineEdit_b->text().toDouble();
+        double c = ui->lineEdit_c->text().toDouble();
+        double d = ui->lineEdit_d->text().toDouble();
+        pLane->AddWidthRecord(soffoset,a,b,c,d);
+    }
+    on_comboBox_LaneSection_currentIndexChanged(ui->comboBox_LaneSection->currentIndex());
 }
 
 void DialogEditLane::on_pushButton_DeleteLane_clicked()
 {
+    int index = ui->comboBox_Lane->currentText().toInt();
+    if(index == 0)
+    {
+        QMessageBox::warning(this,"Warning","Can't delete center Lane.",QMessageBox::YesAll);
+        return;
+    }
+
+    if(mpCurLS == 0)return;
+    int nlanecount = mpCurLS->GetLaneCount();
+    int i;
+    bool bFind = false;
+    for(i=0;i<nlanecount;i++)
+    {
+        if(mpCurLS->GetLane(i)->GetId() == index)
+        {
+            bFind = true;
+            break;
+        }
+    }
+    mpCurLS->DeleteLane(i);
 
+    on_comboBox_LaneSection_currentIndexChanged(ui->comboBox_LaneSection->currentIndex());
 }
 
 void DialogEditLane::on_pushButton_AddLaneWidth_clicked()
 {
-
+    if(mpCurLS == 0)return;
+    Lane * pLane = mpCurLS->GetLane(ui->comboBox_Lane->currentIndex());
+    if(pLane != 0)
+    {
+        double soffoset = ui->lineEdit_sOffset->text().toDouble();
+        double a = ui->lineEdit_a->text().toDouble();
+        double b = ui->lineEdit_b->text().toDouble();
+        double c = ui->lineEdit_c->text().toDouble();
+        double d = ui->lineEdit_d->text().toDouble();
+        pLane->AddWidthRecord(soffoset,a,b,c,d);
+    }
+   on_comboBox_Lane_currentIndexChanged(ui->comboBox_Lane->currentIndex());
 }
 
 void DialogEditLane::on_pushButton_ChangeLaneWidth_clicked()
-{
+{    
+    if(mpCurLS == 0)return;
+    Lane * pLane = mpCurLS->GetLane(ui->comboBox_Lane->currentIndex());
+    if(pLane != 0)
+    {
+        LaneWidth * pLaneWidth = pLane->GetLaneWidth(ui->comboBox_Width->currentIndex());
+        if(pLaneWidth != 0)
+        {
+            pLaneWidth->SetS(ui->lineEdit_sOffset->text().toDouble());
+            pLaneWidth->SetA(ui->lineEdit_a->text().toDouble());
+            pLaneWidth->SetB(ui->lineEdit_b->text().toDouble());
+            pLaneWidth->SetC(ui->lineEdit_c->text().toDouble());
+            pLaneWidth->SetD(ui->lineEdit_d->text().toDouble());
+        }
 
+    }
+    on_comboBox_Width_currentIndexChanged(ui->comboBox_Width->currentIndex());
 }
 
 void DialogEditLane::on_pushButton_DeleteLaneWidth_clicked()
 {
-
+    if(mpCurLS == 0)return;
+    Lane * pLane = mpCurLS->GetLane(ui->comboBox_Lane->currentIndex());
+    if(pLane != 0)
+    {
+        if(pLane->GetLaneWidthCount() <= 1)
+        {
+            QMessageBox::warning(this,"Warning","Don't remove all lane width.",QMessageBox::YesAll);
+        }
+        else
+        {
+            pLane->DeleteLaneWidth(ui->comboBox_Width->currentIndex());
+        }
+    }
+    on_comboBox_Lane_currentIndexChanged(ui->comboBox_Lane->currentIndex());
 }

+ 2 - 0
src/tool/map_lanetoxodr/dialogeditlane.h

@@ -5,6 +5,8 @@
 
 #include "OpenDrive/OpenDrive.h"
 
+#include <QMessageBox>
+
 namespace Ui {
 class DialogEditLane;
 }

+ 187 - 0
src/tool/map_lanetoxodr/dialogeditroadmark.cpp

@@ -0,0 +1,187 @@
+#include "dialogeditroadmark.h"
+#include "ui_dialogeditroadmark.h"
+
+
+const std::string roadcolorchoice[] = {"standard","blue","green","red","white","yellow","orange"};
+const std::string lanechangechoice[] = {"both","none","increase","decrease"};
+const std::string marktypechoice[] = {"none","solid","broken","solid solid","solid broken",
+                                     "broken solid","broken broken"};
+
+
+DialogEditRoadMark::DialogEditRoadMark(Road * pRoad,QWidget *parent) :
+    QDialog(parent),
+    ui(new Ui::DialogEditRoadMark)
+{
+    mpRoad = pRoad;
+    ui->setupUi(this);
+
+    int i;
+    for(i=0;i<7;i++)ui->comboBox_color->addItem(QString(roadcolorchoice[i].data()));
+    for(i=0;i<4;i++)ui->comboBox_laneChange->addItem(QString(lanechangechoice[i].data()));
+    for(i=0;i<7;i++)ui->comboBox_MarkType->addItem(QString(marktypechoice[i].data()));
+    ui->comboBox_MarkType->setCurrentIndex(1);
+    ui->comboBox_weight->addItem("standard");
+    ui->comboBox_weight->addItem("bold");
+
+    int nsection = pRoad->GetLaneSectionCount();
+    for(i=0;i<nsection;i++)
+    {
+        LaneSection * pLS =  pRoad->GetLaneSection(i);
+        QString stritemname = QString("s=") + QString::number(pLS->GetS());
+        ui->comboBox_LaneSection->addItem(stritemname);
+    }
+    if(nsection > 0)on_comboBox_LaneSection_currentIndexChanged(0);
+
+}
+
+DialogEditRoadMark::~DialogEditRoadMark()
+{
+    delete ui;
+}
+
+void DialogEditRoadMark::on_comboBox_LaneSection_currentIndexChanged(int index)
+{
+    if(mpRoad == 0)return;
+    LaneSection * pLS = mpRoad->GetLaneSection(index);
+    ui->comboBox_Lane->clear();
+    mpCurLS = pLS;
+    if(pLS == 0)return;
+    int nLaneCount = pLS->GetLaneCount();
+
+    int i;
+    for(i=0;i<nLaneCount;i++)
+    {
+        Lane * pLane = pLS->GetLane(i);
+        QString stritemname = QString::number(pLane->GetId());
+        ui->comboBox_Lane->addItem(stritemname);
+    }
+
+    if(nLaneCount > 0)on_comboBox_Lane_currentIndexChanged(0);
+}
+
+void DialogEditRoadMark::on_comboBox_Lane_currentIndexChanged(int index)
+{
+    if(mpCurLS == 0)return;
+    Lane * pLane = mpCurLS->GetLane(index);
+    ui->comboBox_Mark->clear();
+    mpCurLane = pLane;
+    if(pLane == 0)return;
+    ui->comboBox_Mark->clear();
+    int nRoadMarkCount = pLane->GetLaneRoadMarkCount();
+    if(nRoadMarkCount == 0)
+    {
+        ui->lineEdit_sOffset->setText("");
+        ui->lineEdit_width->setText("");
+        return;
+    }
+    int i;
+    for(i=0;i<nRoadMarkCount;i++)
+    {
+        ui->comboBox_Mark->addItem(QString("s=")+QString::number(pLane->GetLaneRoadMark(i)->GetS()));
+    }
+    on_comboBox_Mark_currentIndexChanged(0);
+}
+
+void DialogEditRoadMark::on_comboBox_Mark_currentIndexChanged(int index)
+{
+    if(mpCurLane == 0)return;
+    LaneRoadMark * pLaneRoadMark = mpCurLane->GetLaneRoadMark(index);
+    if(pLaneRoadMark == 0)return;
+    ui->comboBox_MarkType->setCurrentIndex(1);
+    std::string strmarktype = pLaneRoadMark->GetType();
+    int i;
+    const int typechoicecount = 7;
+    for(i=0;i<typechoicecount;i++)
+    {
+        if(strmarktype == marktypechoice[i])break;
+    }
+    if(i<typechoicecount)ui->comboBox_MarkType->setCurrentIndex(i);
+    else ui->comboBox_MarkType->setCurrentIndex(1);
+
+    std::string strlanechange = pLaneRoadMark->GetLaneChange();
+    const int lanechagnechoicecount = 4;
+    for(i=0;i<lanechagnechoicecount;i++)
+    {
+        if(strlanechange == lanechangechoice[i])break;
+    }
+    if(i<lanechagnechoicecount)ui->comboBox_laneChange->setCurrentIndex(i);
+    else ui->comboBox_laneChange->setCurrentIndex(0);
+
+    std::string strweight = pLaneRoadMark->GetWeight();
+    if(strweight == "bold")ui->comboBox_weight->setCurrentIndex(1);
+    else ui->comboBox_weight->setCurrentIndex(0);
+
+    std::string strcolor = pLaneRoadMark->GetColor();
+    const int lanemarkcolorcount = 7;
+    for(i=0;i<lanemarkcolorcount;i++)
+    {
+        if(strcolor == roadcolorchoice[i])break;
+    }
+    if(i<lanemarkcolorcount)ui->comboBox_color->setCurrentIndex(i);
+    else ui->comboBox_color->setCurrentIndex(0);
+
+    ui->lineEdit_sOffset->setText(QString::number(pLaneRoadMark->GetS()));
+    ui->lineEdit_width->setText(QString::number(pLaneRoadMark->GetWidth()));
+
+
+
+
+}
+
+void DialogEditRoadMark::on_pushButton_AddLaneRoadMark_clicked()
+{
+    if(mpCurLS == 0)return;
+    Lane * pLane = mpCurLS->GetLane(ui->comboBox_Lane->currentIndex());
+    if(pLane != 0)
+    {
+        double soffset = ui->lineEdit_sOffset->text().toDouble();
+        double fwidth = ui->lineEdit_width->text().toDouble();
+        if(fwidth<=0)fwidth = 0.15;
+        std::string strcolor = ui->comboBox_color->currentText().toStdString();
+        std::string strlanechagne = ui->comboBox_laneChange->currentText().toStdString();
+        std::string strmarktype = ui->comboBox_MarkType->currentText().toStdString();
+        std::string strweight = ui->comboBox_weight->currentText().toStdString();
+        pLane->AddRoadMarkRecord(soffset,strmarktype,strweight,strcolor,fwidth,strlanechagne);
+
+    }
+    on_comboBox_Lane_currentIndexChanged(ui->comboBox_Lane->currentIndex());
+}
+
+void DialogEditRoadMark::on_pushButton_ChangeLaneRoadMark_clicked()
+{
+    if(mpCurLS == 0)return;
+    Lane * pLane = mpCurLS->GetLane(ui->comboBox_Lane->currentIndex());
+    if(pLane != 0)
+    {
+        LaneRoadMark * pLaneRoadMark = pLane->GetLaneRoadMark(ui->comboBox_Mark->currentIndex());
+        if(pLaneRoadMark != 0)
+        {
+            pLaneRoadMark->SetColor(ui->comboBox_color->currentText().toStdString());
+            pLaneRoadMark->SetLaneChange(ui->comboBox_laneChange->currentText().toStdString());
+            pLaneRoadMark->SetS(ui->lineEdit_sOffset->text().toDouble());
+            double fwidth = ui->lineEdit_width->text().toDouble();
+            if(fwidth<=0)fwidth = 0.15;
+            pLaneRoadMark->SetWidth(fwidth);
+            pLaneRoadMark->SetType(ui->comboBox_MarkType->currentText().toStdString());
+            pLaneRoadMark->SetWeight(ui->comboBox_weight->currentText().toStdString());
+        }
+
+    }
+//    on_comboBox_Width_currentIndexChanged(ui->comboBox_Width->currentIndex());
+}
+
+void DialogEditRoadMark::on_pushButton_DeleteLaneRoadMark_clicked()
+{
+    if(mpCurLS == 0)return;
+    Lane * pLane = mpCurLS->GetLane(ui->comboBox_Lane->currentIndex());
+    if(pLane != 0)
+    {
+        LaneRoadMark * pLaneRoadMark = pLane->GetLaneRoadMark(ui->comboBox_Mark->currentIndex());
+        if(pLaneRoadMark != 0)
+        {
+            pLane->DeleteLaneRoadMark(ui->comboBox_Mark->currentIndex());
+        }
+
+    }
+    on_comboBox_Lane_currentIndexChanged(ui->comboBox_Lane->currentIndex());
+}

+ 43 - 0
src/tool/map_lanetoxodr/dialogeditroadmark.h

@@ -0,0 +1,43 @@
+#ifndef DIALOGEDITROADMARK_H
+#define DIALOGEDITROADMARK_H
+
+#include <QDialog>
+
+#include "OpenDrive/OpenDrive.h"
+
+#include <QMessageBox>
+
+namespace Ui {
+class DialogEditRoadMark;
+}
+
+class DialogEditRoadMark : public QDialog
+{
+    Q_OBJECT
+
+public:
+    explicit DialogEditRoadMark(Road * pRoad,QWidget *parent = nullptr);
+    ~DialogEditRoadMark();
+
+private slots:
+    void on_comboBox_LaneSection_currentIndexChanged(int index);
+
+    void on_comboBox_Lane_currentIndexChanged(int index);
+
+    void on_comboBox_Mark_currentIndexChanged(int index);
+
+    void on_pushButton_AddLaneRoadMark_clicked();
+
+    void on_pushButton_ChangeLaneRoadMark_clicked();
+
+    void on_pushButton_DeleteLaneRoadMark_clicked();
+
+private:
+    Ui::DialogEditRoadMark *ui;
+    Road * mpRoad;
+    LaneSection * mpCurLS = 0;
+    Lane * mpCurLane = 0;
+    LaneRoadMark * mpCurLaneRoadMark = 0;
+};
+
+#endif // DIALOGEDITROADMARK_H

+ 265 - 0
src/tool/map_lanetoxodr/dialogeditroadmark.ui

@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DialogEditRoadMark</class>
+ <widget class="QDialog" name="DialogEditRoadMark">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>746</width>
+    <height>423</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <widget class="QLabel" name="label_4">
+   <property name="geometry">
+    <rect>
+     <x>33</x>
+     <y>213</y>
+     <width>91</width>
+     <height>21</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>sOffset</string>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label_8">
+   <property name="geometry">
+    <rect>
+     <x>249</x>
+     <y>263</y>
+     <width>91</width>
+     <height>20</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>laneChange</string>
+   </property>
+  </widget>
+  <widget class="QPushButton" name="pushButton_DeleteLaneRoadMark">
+   <property name="geometry">
+    <rect>
+     <x>513</x>
+     <y>337</y>
+     <width>181</width>
+     <height>31</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>Delete Lane RoadMark</string>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label_7">
+   <property name="geometry">
+    <rect>
+     <x>30</x>
+     <y>264</y>
+     <width>81</width>
+     <height>20</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>width</string>
+   </property>
+  </widget>
+  <widget class="QLineEdit" name="lineEdit_sOffset">
+   <property name="geometry">
+    <rect>
+     <x>120</x>
+     <y>206</y>
+     <width>111</width>
+     <height>31</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QPushButton" name="pushButton_AddLaneRoadMark">
+   <property name="geometry">
+    <rect>
+     <x>40</x>
+     <y>337</y>
+     <width>181</width>
+     <height>31</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>Add Lane RoadMark</string>
+   </property>
+  </widget>
+  <widget class="QComboBox" name="comboBox_Lane">
+   <property name="geometry">
+    <rect>
+     <x>160</x>
+     <y>86</y>
+     <width>221</width>
+     <height>41</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QComboBox" name="comboBox_MarkType">
+   <property name="geometry">
+    <rect>
+     <x>480</x>
+     <y>146</y>
+     <width>221</width>
+     <height>41</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label_9">
+   <property name="geometry">
+    <rect>
+     <x>420</x>
+     <y>155</y>
+     <width>67</width>
+     <height>17</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>Type</string>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label_2">
+   <property name="geometry">
+    <rect>
+     <x>30</x>
+     <y>96</y>
+     <width>67</width>
+     <height>17</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>Lane</string>
+   </property>
+  </widget>
+  <widget class="QLineEdit" name="lineEdit_width">
+   <property name="geometry">
+    <rect>
+     <x>120</x>
+     <y>256</y>
+     <width>111</width>
+     <height>31</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label_3">
+   <property name="geometry">
+    <rect>
+     <x>30</x>
+     <y>156</y>
+     <width>81</width>
+     <height>17</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>roadMark</string>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label">
+   <property name="geometry">
+    <rect>
+     <x>30</x>
+     <y>36</y>
+     <width>151</width>
+     <height>21</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>Lane Section</string>
+   </property>
+  </widget>
+  <widget class="QPushButton" name="pushButton_ChangeLaneRoadMark">
+   <property name="geometry">
+    <rect>
+     <x>280</x>
+     <y>337</y>
+     <width>171</width>
+     <height>31</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>Change Lane RoadMark</string>
+   </property>
+  </widget>
+  <widget class="QComboBox" name="comboBox_LaneSection">
+   <property name="geometry">
+    <rect>
+     <x>160</x>
+     <y>26</y>
+     <width>221</width>
+     <height>41</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label_6">
+   <property name="geometry">
+    <rect>
+     <x>499</x>
+     <y>212</y>
+     <width>71</width>
+     <height>21</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>color</string>
+   </property>
+  </widget>
+  <widget class="QComboBox" name="comboBox_Mark">
+   <property name="geometry">
+    <rect>
+     <x>160</x>
+     <y>146</y>
+     <width>221</width>
+     <height>41</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label_5">
+   <property name="geometry">
+    <rect>
+     <x>250</x>
+     <y>210</y>
+     <width>91</width>
+     <height>21</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>weight</string>
+   </property>
+  </widget>
+  <widget class="QComboBox" name="comboBox_weight">
+   <property name="geometry">
+    <rect>
+     <x>350</x>
+     <y>210</y>
+     <width>131</width>
+     <height>31</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QComboBox" name="comboBox_color">
+   <property name="geometry">
+    <rect>
+     <x>570</x>
+     <y>210</y>
+     <width>141</width>
+     <height>31</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QComboBox" name="comboBox_laneChange">
+   <property name="geometry">
+    <rect>
+     <x>350</x>
+     <y>260</y>
+     <width>131</width>
+     <height>31</height>
+    </rect>
+   </property>
+  </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>

+ 3 - 0
src/tool/map_lanetoxodr/map_lanetoxodr.pro

@@ -30,6 +30,7 @@ QMAKE_LFLAGS += -no-pie
 SOURCES += \
     autoconnect.cpp \
     dialogeditlane.cpp \
+    dialogeditroadmark.cpp \
     ivxodrtool.cpp \
         main.cpp \
         mainwindow.cpp \
@@ -70,6 +71,7 @@ SOURCES += \
 HEADERS += \
     autoconnect.h \
     dialogeditlane.h \
+    dialogeditroadmark.h \
     ivxodrtool.h \
         mainwindow.h \
     rawtype.h \
@@ -106,6 +108,7 @@ HEADERS += \
 
 FORMS += \
         dialogeditlane.ui \
+        dialogeditroadmark.ui \
         mainwindow.ui \
         roadeditdialog.ui \
         speeddialog.ui \

+ 14 - 1
src/tool/map_lanetoxodr/roadeditdialog.cpp

@@ -17,7 +17,7 @@ RoadEditDialog::RoadEditDialog(OpenDrive * pxodr,QWidget *parent) :
     myview->setObjectName(QStringLiteral("graphicsView"));
     myview->setGeometry(QRect(30, 300, 900, 500));
 
-    connect(myview,SIGNAL(dbclickxy(double,double)),this,SLOT(onClickXY(double,double)));
+ //   connect(myview,SIGNAL(dbclickxy(double,double)),this,SLOT(onClickXY(double,double)));
 
     image = new QImage(VIEW_WIDTH, VIEW_HEIGHT, QImage::Format_RGB32);//画布的初始化大小设为300*300,使用32位颜色
     myview->setCacheMode(myview->CacheBackground);
@@ -406,4 +406,17 @@ void RoadEditDialog::on_pushButton_EditLane_clicked()
     }
     DialogEditLane laned(mpCurRoad,this);
     int res = laned.exec();
+    on_comboBox_Road_currentIndexChanged(ui->comboBox_Road->currentIndex());
+}
+
+void RoadEditDialog::on_pushButton_EditRoadMark_clicked()
+{
+    if(mpCurRoad == 0)
+    {
+        QMessageBox::warning(this,"Warning","Not Select Road");
+        return;
+    }
+    DialogEditRoadMark roadmarkd(mpCurRoad,this);
+    roadmarkd.exec();
+    on_comboBox_Road_currentIndexChanged(ui->comboBox_Road->currentIndex());
 }

+ 3 - 0
src/tool/map_lanetoxodr/roadeditdialog.h

@@ -12,6 +12,7 @@
 #include "roadviewitem.h"
 
 #include "dialogeditlane.h"
+#include "dialogeditroadmark.h"
 
 namespace Ui {
 class RoadEditDialog;
@@ -39,6 +40,8 @@ private slots:
 
     void on_pushButton_EditLane_clicked();
 
+    void on_pushButton_EditRoadMark_clicked();
+
 private:
     Ui::RoadEditDialog *ui;
     OpenDrive * mpxodr;

+ 13 - 0
src/tool/map_lanetoxodr/roadeditdialog.ui

@@ -233,6 +233,19 @@
     <string>Edit Lane</string>
    </property>
   </widget>
+  <widget class="QPushButton" name="pushButton_EditRoadMark">
+   <property name="geometry">
+    <rect>
+     <x>350</x>
+     <y>210</y>
+     <width>181</width>
+     <height>31</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>Edit RoadMark</string>
+   </property>
+  </widget>
  </widget>
  <resources/>
  <connections/>