|
@@ -5,6 +5,8 @@
|
|
|
#include <iostream>
|
|
|
#include <QMessageBox>
|
|
|
|
|
|
+#include <math.h>
|
|
|
+
|
|
|
std::string cda_lanetype_sel[9] = {"shoulder","border","driving","stop","none","parking","biking","sidewalk",
|
|
|
"median"};
|
|
|
|
|
@@ -162,3 +164,78 @@ void DialogAddRoadFromCDA::on_comboBox_geo_currentIndexChanged(int index)
|
|
|
ui->lineEdit_georadius->setText(QString::number(pgeo->mfradius));
|
|
|
ui->lineEdit_geolen->setText(QString::number(pgeo->mflen));
|
|
|
}
|
|
|
+
|
|
|
+void DialogAddRoadFromCDA::on_pushButton_laneadd_clicked()
|
|
|
+{
|
|
|
+ iv::cdaroad * pcdaroad = &mcdaroad;
|
|
|
+ iv::cdalane xlane;
|
|
|
+ xlane.mflanewidth = ui->lineEdit_lanewidth->text().toDouble();
|
|
|
+ if(xlane.mflanewidth<=0)
|
|
|
+ {
|
|
|
+ QMessageBox::warning(this,tr("Warning"),tr("Lane Width Error."),QMessageBox::YesAll);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ xlane.mnlanemarkcolor = ui->comboBox_lanecolor->currentIndex();
|
|
|
+ xlane.mnlanemarktype = ui->comboBox_lanemarktype->currentIndex();
|
|
|
+ xlane.mnlanetype = ui->comboBox_lanetype->currentIndex();
|
|
|
+ int nlanecount = static_cast<int>(pcdaroad->mvectorlane.size()) ;
|
|
|
+ pcdaroad->mvectorlane.push_back(xlane);
|
|
|
+ ui->comboBox_Lane->addItem(QString(tr("车道"))+QString::number(nlanecount+1));
|
|
|
+ ui->comboBox_Lane->setCurrentIndex(nlanecount);
|
|
|
+ ui->lineEdit_roadlanecount->setText(QString::number(nlanecount+1));
|
|
|
+}
|
|
|
+
|
|
|
+void DialogAddRoadFromCDA::on_pushButton_lanedel_clicked()
|
|
|
+{
|
|
|
+ iv::cdaroad * pcdaroad = &mcdaroad;
|
|
|
+ if(pcdaroad->mvectorlane.size() == 0)
|
|
|
+ {
|
|
|
+ QMessageBox::warning(this,tr("Warning"),tr("No Lane."),QMessageBox::YesAll);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ int index = ui->comboBox_Lane->currentIndex();
|
|
|
+ pcdaroad->mvectorlane.erase(pcdaroad->mvectorlane.begin() + index);
|
|
|
+
|
|
|
+ int nlanecount = static_cast<int>(pcdaroad->mvectorlane.size());
|
|
|
+ int i;
|
|
|
+ ui->comboBox_Lane->clear();
|
|
|
+ for(i=0;i<nlanecount;i++)
|
|
|
+ {
|
|
|
+ ui->comboBox_Lane->addItem(QString(tr("车道"))+QString::number(i+1));
|
|
|
+ }
|
|
|
+ ui->lineEdit_roadlanecount->setText(QString::number(nlanecount));
|
|
|
+
|
|
|
+ if(index<nlanecount)
|
|
|
+ {
|
|
|
+ ui->comboBox_Lane->setCurrentIndex(index);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ui->comboBox_Lane->setCurrentIndex((nlanecount-1));
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void DialogAddRoadFromCDA::on_pushButton_lanechange_clicked()
|
|
|
+{
|
|
|
+ iv::cdaroad * pcdaroad = &mcdaroad;
|
|
|
+ if(pcdaroad->mvectorlane.size() == 0)
|
|
|
+ {
|
|
|
+ QMessageBox::warning(this,tr("Warning"),tr("No Lane."),QMessageBox::YesAll);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ int index = ui->comboBox_Lane->currentIndex();
|
|
|
+ double flanewidth = ui->lineEdit_lanewidth->text().toDouble();
|
|
|
+ if(flanewidth<=0)
|
|
|
+ {
|
|
|
+ QMessageBox::warning(this,tr("Warning"),tr("Lane Width Error."),QMessageBox::YesAll);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ iv::cdalane * plane = &pcdaroad->mvectorlane[index];
|
|
|
+ plane->mflanewidth = flanewidth;
|
|
|
+ plane->mnlanemarkcolor = ui->comboBox_lanecolor->currentIndex();
|
|
|
+ plane->mnlanemarktype = ui->comboBox_lanemarktype->currentIndex();
|
|
|
+ plane->mnlanetype = ui->comboBox_lanetype->currentIndex();
|
|
|
+ ui->comboBox_Lane->setCurrentIndex(index);
|
|
|
+ QMessageBox::information(this,tr("Info"),tr("Change Lane Successfully."),QMessageBox::YesAll);
|
|
|
+}
|