Procházet zdrojové kódy

change tool/map_lanetoxodr. fix bug on filebackup.

yuchuli před 3 roky
rodič
revize
da5821bd93

+ 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
 	 */
 	 */