Просмотр исходного кода

change tool/map_lanetoxodr. fix bug on filebackup.

yuchuli 4 лет назад
Родитель
Сommit
da5821bd93
2 измененных файлов с 53 добавлено и 2 удалено
  1. 49 2
      src/common/common/xodr/OpenDrive/OpenDrive.cpp
  2. 4 0
      src/common/common/xodr/OpenDrive/OpenDrive.h

+ 49 - 2
src/common/common/xodr/OpenDrive/OpenDrive.cpp

@@ -162,7 +162,8 @@ OpenDrive::OpenDrive (const OpenDrive& openDrive)
 {
 {
     mRoadVector = openDrive.mRoadVector;
     mRoadVector = openDrive.mRoadVector;
     mJunctionVector = openDrive.mJunctionVector;
     mJunctionVector = openDrive.mJunctionVector;
-    Header * pHeader = openDrive.mHeader;
+    Header * pHeader = new Header();
+    if(openDrive.mHeader != NULL)*pHeader = *(openDrive.mHeader);
     if(pHeader != NULL)
     if(pHeader != NULL)
     {
     {
         unsigned short int revMajor,revMinor;
         unsigned short int revMajor,revMinor;
@@ -184,7 +185,8 @@ const OpenDrive& OpenDrive::operator=(const OpenDrive& rhs)
 {
 {
     mRoadVector = rhs.mRoadVector;
     mRoadVector = rhs.mRoadVector;
     mJunctionVector = rhs.mJunctionVector;
     mJunctionVector = rhs.mJunctionVector;
-    Header * pHeader = rhs.mHeader;
+    Header * pHeader = new Header();
+    if(rhs.mHeader != NULL)*pHeader = *(rhs.mHeader);
     if(pHeader != NULL)
     if(pHeader != NULL)
     {
     {
         unsigned short int revMajor,revMinor;
         unsigned short int revMajor,revMinor;
@@ -239,6 +241,51 @@ Header::Header(unsigned short int revMajor, unsigned short int revMinor, string
 
 
 }
 }
 
 
+Header::Header()
+{
+    mRevMajor=1;
+    mRevMinor=1;
+    mName="adcmap";
+    mVersion=1.1;
+}
+
+Header::Header(const Header& pHeader)
+{
+    mRevMajor = pHeader.mRevMajor;
+    mRevMinor=pHeader.mRevMajor;
+    mName=pHeader.mName;
+    mVersion=pHeader.mVersion;
+    mDate=pHeader.mDate;
+    mNorth=pHeader.mNorth;
+    mSouth=pHeader.mSouth;
+    mEast=pHeader.mEast;
+    mWest=pHeader.mWest;
+
+    mLat0=pHeader.mLat0;
+    mLon0=pHeader.mLon0;
+    mHdg0=pHeader.mHdg0;
+    mgeoReference = pHeader.mgeoReference;
+    muserData = pHeader.muserData;
+}
+const Header& Header::operator=(const Header& rhs)
+{
+    mRevMajor = rhs.mRevMajor;
+    mRevMinor=rhs.mRevMajor;
+    mName=rhs.mName;
+    mVersion=rhs.mVersion;
+    mDate=rhs.mDate;
+    mNorth=rhs.mNorth;
+    mSouth=rhs.mSouth;
+    mEast=rhs.mEast;
+    mWest=rhs.mWest;
+
+    mLat0=rhs.mLat0;
+    mLon0=rhs.mLon0;
+    mHdg0=rhs.mHdg0;
+    mgeoReference = rhs.mgeoReference;
+    muserData = rhs.muserData;
+}
+
 Header::Header(unsigned short int revMajor, unsigned short int revMinor, string name, float version, string date,
 Header::Header(unsigned short int revMajor, unsigned short int revMinor, string name, float version, string date,
                double north, double south, double east,double west,double lat0,double lon0,double hdg0)
                double north, double south, double east,double west,double lat0,double lon0,double hdg0)
 {
 {

+ 4 - 0
src/common/common/xodr/OpenDrive/OpenDrive.h

@@ -168,6 +168,10 @@ public:
     Header(unsigned short int revMajor, unsigned short int revMinor, string name, float version, string date,
     Header(unsigned short int revMajor, unsigned short int revMinor, string name, float version, string date,
         double north, double south, double east,double west,double lat0,double lon0, double hdg0);
         double north, double south, double east,double west,double lat0,double lon0, double hdg0);
 	
 	
+
+    Header();
+    Header(const Header& pHeader);
+    const Header& operator=(const Header& rhs);
 	/**
 	/**
 	 * Getter for all properties
 	 * Getter for all properties
 	 */
 	 */