Browse Source

change tool/map_lanetoxodr. fix bug on filebackup.

yuchuli 3 years ago
parent
commit
da5821bd93

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

@@ -162,7 +162,8 @@ OpenDrive::OpenDrive (const OpenDrive& openDrive)
 {
     mRoadVector = openDrive.mRoadVector;
     mJunctionVector = openDrive.mJunctionVector;
-    Header * pHeader = openDrive.mHeader;
+    Header * pHeader = new Header();
+    if(openDrive.mHeader != NULL)*pHeader = *(openDrive.mHeader);
     if(pHeader != NULL)
     {
         unsigned short int revMajor,revMinor;
@@ -184,7 +185,8 @@ const OpenDrive& OpenDrive::operator=(const OpenDrive& rhs)
 {
     mRoadVector = rhs.mRoadVector;
     mJunctionVector = rhs.mJunctionVector;
-    Header * pHeader = rhs.mHeader;
+    Header * pHeader = new Header();
+    if(rhs.mHeader != NULL)*pHeader = *(rhs.mHeader);
     if(pHeader != NULL)
     {
         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,
                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,
         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
 	 */