Sfoglia il codice sorgente

change map_lanetoxodr. fix two direction road extend problem.

yuchuli 2 anni fa
parent
commit
308cdb3c99
1 ha cambiato i file con 4 aggiunte e 0 eliminazioni
  1. 4 0
      src/tool/map_lanetoxodr/createextendroad.cpp

+ 4 - 0
src/tool/map_lanetoxodr/createextendroad.cpp

@@ -56,9 +56,11 @@ int CreateExtendRoad::CreateBeforeRoad(OpenDrive *pxodr, Road *pRoad, double fLe
         LaneSection * pLS = pRoad->GetLaneSection(0);
         pnewroad->AddLaneSection(0);
         LaneSection * pLSnew = pnewroad->GetLastAddedLaneSection();
+        pLSnew->AddLane(0,0,"none",false);
         for(i=0;i<(int)pLS->GetLaneCount();i++)
         {
             Lane * pLane = pLS->GetLane(i);
+            if(pLane->GetId() == 0)continue;
             pLSnew->AddLane(pLane->GetSide(),pLane->GetId(),pLane->GetType(),pLane->GetLevel());
             Lane * pnewlane = pLSnew->GetLastAddedLane();
             pnewlane->AddWidthRecord(0,pLane->GetWidthValue(0),0,0,0);
@@ -117,9 +119,11 @@ int CreateExtendRoad::CreateAfterRoad(OpenDrive *pxodr, Road *pRoad, double fLen
         LaneSection * pLS = pRoad->GetLaneSection(pRoad->GetLaneSectionCount()-1);
         pnewroad->AddLaneSection(0);
         LaneSection * pLSnew = pnewroad->GetLastAddedLaneSection();
+        pLSnew->AddLane(0,0,"none",false);
         for(i=0;i<(int)pLS->GetLaneCount();i++)
         {
             Lane * pLane = pLS->GetLane(i);
+            if(pLane->GetId() == 0)continue;
             pLSnew->AddLane(pLane->GetSide(),pLane->GetId(),pLane->GetType(),pLane->GetLevel());
             Lane * pnewlane = pLSnew->GetLastAddedLane();
             pnewlane->AddWidthRecord(0,pLane->GetWidthValue(pRoad->GetRoadLength()-0.00001),0,0,0);