فهرست منبع

change tool/map_lanetoxodr. fix bug on filebackup.

yuchuli 4 سال پیش
والد
کامیت
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
 	 */
 	 */