Browse Source

change tool/map_lanetoxodr. writing object_markings_marking code.

yuchuli 3 years ago
parent
commit
02aa639ac2

+ 140 - 0
src/common/common/xodr/OpenDrive/ObjectSignal.cpp

@@ -2,6 +2,129 @@
 
 #include <iostream>
 
+
+int Object_markings_marking::Getside(string & strside)
+{
+    if(mside.size() == 0)return 0;
+    strside = mside[0];
+    return 1;
+}
+
+int Object_markings_marking::Getweight(string & strweight)
+{
+    if(mweight.size() == 0)return 0;
+    strweight = mweight[0];
+    return 1;
+}
+
+int Object_markings_marking::Getwidth(double & fwidth)
+{
+    if(mwidth.size() == 0)return 0;
+    fwidth = mwidth[0];
+    return 1;
+}
+
+string Object_markings_marking::Getcolor()
+{
+    return mcolor;
+}
+
+int Object_markings_marking::GetzOffset(double & zOffset)
+{
+    if(mzOffset.size() == 0)return 0;
+    zOffset = mzOffset[0];
+    return 1;
+}
+
+double Object_markings_marking::GetspaceLength()
+{
+    return mspaceLength;
+}
+
+double Object_markings_marking::GetlineLength()
+{
+    return mlineLength;
+}
+
+double Object_markings_marking::GetstartOffset()
+{
+    return mstartOffset;
+}
+
+double Object_markings_marking::GetstopOffset()
+{
+    return mstopOffset;
+}
+
+void Object_markings_marking::Setside(string strside)
+{
+    if(mside.size()>0)mside.clear();
+    mside.push_back(strside);
+}
+
+void Object_markings_marking::Setweight(string strweight)
+{
+    if(mweight.size()>0)mweight.clear();
+    mweight.push_back(strweight);
+}
+
+void Object_markings_marking::Setwidth(double fwidth)
+{
+    if(mwidth.size()>0)mwidth.clear();
+    mwidth.push_back(fwidth);
+}
+
+void Object_markings_marking::Setcolor(string strcolor)
+{
+    mcolor = strcolor;
+}
+
+void Object_markings_marking::SetzOffset(double zOffset)
+{
+    if(mzOffset.size() > 0)mzOffset.clear();
+    mzOffset.push_back(zOffset);
+}
+
+void Object_markings_marking::SetspaceLength(double spaceLength)
+{
+    mspaceLength = spaceLength;
+}
+
+void Object_markings_marking::SetlineLength(double lineLength)
+{
+    mlineLength = lineLength;
+}
+
+void Object_markings_marking::SetstartOffset(double startOffset)
+{
+    mstartOffset = startOffset;
+}
+
+void Object_markings_marking::SetstopOffset(double stopOffset)
+{
+    mstopOffset = stopOffset;
+}
+
+void Object_markings_marking::Clearside()
+{
+    if(mside.size()>0)mside.clear();
+}
+
+void Object_markings_marking::Clearweight()
+{
+    if(mweight.size()>0)mweight.clear();
+}
+
+void Object_markings_marking::Clearwidth()
+{
+    if(mwidth.size()>0)mwidth.clear();
+}
+
+void Object_markings_marking::ClearzOffset()
+{
+    if(mzOffset.size()>0)mzOffset.clear();
+}
+
 Object_markings_marking::Object_markings_marking(std::string color, double spaceLength, double lineLength,
                                                  double startOffset, double stopOffset)
 {
@@ -918,6 +1041,12 @@ Object_outlines * Object::Getoutlines()
     return &(mObject_outlines[0]);
 }
 
+Object_markings * Object::Getmarkings()
+{
+    if(mObject_markings.size()<1)return NULL;
+    return &(mObject_markings[0]);
+}
+
 void Object::Sett(double t)
 {
     mt = t;
@@ -1032,6 +1161,17 @@ void Object::Resetoutlines()
     if(mObject_outlines.size()>0) mObject_outlines.clear();
 }
 
+void Object::Setmarkings(Object_markings &xObject_markings)
+{
+    if(mObject_markings.size()>0)mObject_markings.clear();
+    mObject_markings.push_back(xObject_markings);
+}
+
+void Object::Resetmarkings()
+{
+    if(mObject_markings.size()>0) mObject_markings.clear();
+}
+
 vector<Object_repeat> * Object::GetObjectrepeatVector()
 {
     return &mObject_repeat;

+ 32 - 1
src/common/common/xodr/OpenDrive/ObjectSignal.h

@@ -13,7 +13,7 @@ class Object_markings_marking
 {
 private:
     vector<string> mside;
-    vector<string> mwight;
+    vector<string> mweight;
     vector<double> mwidth;
     string mcolor;
     vector<double> mzOffset;
@@ -22,6 +22,32 @@ private:
     double mstartOffset;
     double mstopOffset;
 
+public:
+    int Getside(string & strside);
+    int Getweight(string & strweight);
+    int Getwidth(double & fwidth);
+    string Getcolor();
+    int GetzOffset(double & zOffset);
+    double GetspaceLength();
+    double GetlineLength();
+    double GetstartOffset();
+    double GetstopOffset();
+
+    void Setside(string strside);
+    void Setweight(string strweight);
+    void Setwidth(double fwidth);
+    void Setcolor(string strcolor);
+    void SetzOffset(double zOffset);
+    void SetspaceLength(double spaceLength);
+    void SetlineLength(double lineLength);
+    void SetstartOffset(double startOffset);
+    void SetstopOffset(double stopOffset);
+
+    void Clearside();
+    void Clearweight();
+    void Clearwidth();
+    void ClearzOffset();
+
 
 
 public:
@@ -332,6 +358,7 @@ private:
 
     vector<Object_outlines> mObject_outlines;
     vector<Object_outlines_outline> mObject_outlines_outline;
+    vector<Object_markings> mObject_markings;
 
     unsigned int mLastAddedObjectrepeat;
     unsigned int mLastAddedObjectmaterial;
@@ -362,6 +389,7 @@ public:
     int GetparkingSpace(Object_parkingSpace & parkingSpace);
 
     Object_outlines * Getoutlines();
+    Object_markings * Getmarkings();
 
     void Sett(double t);
     void SetzOffset(double zOffset);
@@ -387,6 +415,9 @@ public:
     void Setoutlines(Object_outlines &xObject_outlines);
     void Resetoutlines();
 
+    void Setmarkings(Object_markings & xObject_markings);
+    void Resetmarkings();
+
     vector<Object_repeat> * GetObjectrepeatVector();
     Object_repeat* GetObjectrepeat(unsigned int i);
     unsigned int GetObjectrepeatCount();

+ 12 - 0
src/common/common/xodr/OpenDrive/OpenDriveXmlWriter.cpp

@@ -1263,6 +1263,8 @@ bool OpenDriveXmlWriter::WriteObject(TiXmlElement *node, Object *pObject)
         WriteObjectOutlinesOutline(nodeObject,pObject_outlines_outline);
     }
 
+//    unsigned nmarkingcount =
+
     return true;
 }
 //--------------
@@ -1448,6 +1450,16 @@ bool OpenDriveXmlWriter::WriteObjectOutlinesOutline(TiXmlElement *node, Object_o
 
 //--------------
 
+bool OpenDriveXmlWriter::WriteObjectMarkingsMarking(TiXmlElement *node, Object_markings_marking *pObject_markings_marking)
+{
+    TiXmlElement * nodemarking = new TiXmlElement("marking");
+    node->LinkEndChild(nodemarking);
+
+ //   if(pObject_markings_marking->g)
+}
+
+//--------------
+
 bool OpenDriveXmlWriter::WriteObjectOutlinesOutlinecornerRoad(TiXmlElement *node, Object_outlines_outline_cornerRoad *pObject_outlines_outline_cornerRoad)
 {
     TiXmlElement* nodecornerRoad = new TiXmlElement("cornerRoad");

+ 3 - 1
src/common/common/xodr/OpenDrive/OpenDriveXmlWriter.h

@@ -84,7 +84,9 @@ public:
     bool WriteSignal(TiXmlElement * node, Signal * pSignal);
     bool WriteSignal_positionInertial(TiXmlElement * node, signal_positionInertial * pSignal_positionInertial);
     bool WriteSignal_laneValidity(TiXmlElement * node, signal_laneValidity * pSignal_laneValidity);
-	//--------------
+    bool WriteObjectMarkingsMarking(TiXmlElement * node,Object_markings_marking * pObject_markings_marking);
+
+    //--------------
 
 	bool WriteSurface (TiXmlElement *node, Road* road);
 	//--------------

+ 14 - 0
src/tool/map_lanetoxodr/dialogobject_lanevalidity.cpp

@@ -0,0 +1,14 @@
+#include "dialogobject_lanevalidity.h"
+#include "ui_dialogobject_lanevalidity.h"
+
+DialogObject_laneValidity::DialogObject_laneValidity(QWidget *parent) :
+    QDialog(parent),
+    ui(new Ui::DialogObject_laneValidity)
+{
+    ui->setupUi(this);
+}
+
+DialogObject_laneValidity::~DialogObject_laneValidity()
+{
+    delete ui;
+}

+ 22 - 0
src/tool/map_lanetoxodr/dialogobject_lanevalidity.h

@@ -0,0 +1,22 @@
+#ifndef DIALOGOBJECT_LANEVALIDITY_H
+#define DIALOGOBJECT_LANEVALIDITY_H
+
+#include <QDialog>
+
+namespace Ui {
+class DialogObject_laneValidity;
+}
+
+class DialogObject_laneValidity : public QDialog
+{
+    Q_OBJECT
+
+public:
+    explicit DialogObject_laneValidity(QWidget *parent = nullptr);
+    ~DialogObject_laneValidity();
+
+private:
+    Ui::DialogObject_laneValidity *ui;
+};
+
+#endif // DIALOGOBJECT_LANEVALIDITY_H

+ 114 - 0
src/tool/map_lanetoxodr/dialogobject_lanevalidity.ui

@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>DialogObject_laneValidity</class>
+ <widget class="QDialog" name="DialogObject_laneValidity">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>420</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <widget class="QLineEdit" name="lineEdit_fromLane">
+   <property name="geometry">
+    <rect>
+     <x>216</x>
+     <y>80</y>
+     <width>121</width>
+     <height>41</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label">
+   <property name="geometry">
+    <rect>
+     <x>76</x>
+     <y>80</y>
+     <width>121</width>
+     <height>41</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>fromLane</string>
+   </property>
+  </widget>
+  <widget class="QLineEdit" name="lineEdit_toLane">
+   <property name="geometry">
+    <rect>
+     <x>216</x>
+     <y>140</y>
+     <width>121</width>
+     <height>41</height>
+    </rect>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label_2">
+   <property name="geometry">
+    <rect>
+     <x>76</x>
+     <y>140</y>
+     <width>121</width>
+     <height>41</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>toLane</string>
+   </property>
+  </widget>
+  <widget class="QPushButton" name="pushButton_Add">
+   <property name="geometry">
+    <rect>
+     <x>30</x>
+     <y>220</y>
+     <width>91</width>
+     <height>51</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>Add</string>
+   </property>
+  </widget>
+  <widget class="QPushButton" name="pushButton_Change">
+   <property name="geometry">
+    <rect>
+     <x>170</x>
+     <y>220</y>
+     <width>91</width>
+     <height>51</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>Change</string>
+   </property>
+  </widget>
+  <widget class="QPushButton" name="pushButton_Delete">
+   <property name="geometry">
+    <rect>
+     <x>310</x>
+     <y>220</y>
+     <width>91</width>
+     <height>51</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>Delete</string>
+   </property>
+  </widget>
+  <widget class="QComboBox" name="comboBox">
+   <property name="geometry">
+    <rect>
+     <x>70</x>
+     <y>10</y>
+     <width>261</width>
+     <height>41</height>
+    </rect>
+   </property>
+  </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>

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

@@ -38,6 +38,7 @@ SOURCES += \
     dialoghideroad.cpp \
     dialoglanefromrtk.cpp \
     dialoglaneoffset.cpp \
+    dialogobject_lanevalidity.cpp \
     dialogparkingspaceedit.cpp \
     dialogparkingspacefromrtk.cpp \
     dialogroadborrow.cpp \
@@ -98,6 +99,7 @@ HEADERS += \
     dialoghideroad.h \
     dialoglanefromrtk.h \
     dialoglaneoffset.h \
+    dialogobject_lanevalidity.h \
     dialogparkingspaceedit.h \
     dialogparkingspacefromrtk.h \
     dialogroadborrow.h \
@@ -152,6 +154,7 @@ FORMS += \
         dialoghideroad.ui \
         dialoglanefromrtk.ui \
         dialoglaneoffset.ui \
+        dialogobject_lanevalidity.ui \
         dialogparkingspaceedit.ui \
         dialogparkingspacefromrtk.ui \
         dialogroadborrow.ui \