|
@@ -80,7 +80,21 @@ int CDAProc::ProcIntersectionRoad(OpenDrive * pxodr, iv::map::cdadraw * pcdadraw
|
|
|
LaneSection * pLS = pRoad->GetLaneSection(0);
|
|
|
pLS->AddLane(0,0,"none",false);
|
|
|
Lane * pcenterlane = pLS->GetLastAddedLane();
|
|
|
- pcenterlane->AddRoadMarkRecord(0,"solid solid","standard","yellow",0.15,"none");
|
|
|
+ iv::map::cdalanemarkline * pmark = pcdadraw->mutable_mlanemarkline(0);
|
|
|
+ if(pmark == NULL)
|
|
|
+ pcenterlane->AddRoadMarkRecord(0,"solid solid","standard","yellow",0.15,"none");
|
|
|
+ else
|
|
|
+ {
|
|
|
+ pcenterlane->AddRoadMarkRecord(0,cda_lanemarktype_sel[pmark->lanemarktype()],"standard",
|
|
|
+ cda_lanemarkcolor_sel[pmark->lanemarkcolor()],pmark->lanemarkwidth(),"none");
|
|
|
+ if(pmark->lanemarktype() == 0)
|
|
|
+ {
|
|
|
+ LaneRoadMark * pLaneRoadMark = pcenterlane->GetLastAddedLaneRoadMark();
|
|
|
+ LaneRoadMarkType laneRoadMarkType(cda_lanemarktype_sel[pmark->lanemarktype()],pmark->lanemarkwidth());
|
|
|
+ laneRoadMarkType.AddLaneRoadMarkLine(pmark->lanemarklinelength(),pmark->lanemarklinespace(),0,0);
|
|
|
+ pLaneRoadMark->SetLaneRoadMarkType(laneRoadMarkType);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
int j;
|
|
|
for(j=0;j<nlanecount;j++)
|
|
@@ -90,13 +104,34 @@ int CDAProc::ProcIntersectionRoad(OpenDrive * pxodr, iv::map::cdadraw * pcdadraw
|
|
|
Lane * pnewlane = pLS->GetLastAddedLane();
|
|
|
|
|
|
pnewlane->AddWidthRecord(0,pcdalane->lanewidth(),0,0,0);
|
|
|
- pnewlane->AddRoadMarkRecord(0,cda_lanemarktype_sel[pcdalane->lanemarktype()],"standard",cda_lanemarkcolor_sel[pcdalane->lanemarkcolor()],pcdalane->lanemarkwidth(),"none");
|
|
|
-
|
|
|
+ pmark = pcdadraw->mutable_mlanemarkline(j+1);
|
|
|
+ if(pmark != NULL)
|
|
|
+ {
|
|
|
+ pnewlane->AddRoadMarkRecord(0,cda_lanemarktype_sel[pmark->lanemarktype()],"standard",
|
|
|
+ cda_lanemarkcolor_sel[pmark->lanemarkcolor()],pmark->lanemarkwidth(),"none");
|
|
|
+ if(pmark->lanemarktype() == 0)
|
|
|
+ {
|
|
|
+ LaneRoadMark * pLaneRoadMark = pnewlane->GetLastAddedLaneRoadMark();
|
|
|
+ LaneRoadMarkType laneRoadMarkType(cda_lanemarktype_sel[pmark->lanemarktype()],pmark->lanemarkwidth());
|
|
|
+ laneRoadMarkType.AddLaneRoadMarkLine(pmark->lanemarklinelength(),pmark->lanemarklinespace(),0,0);
|
|
|
+ pLaneRoadMark->SetLaneRoadMarkType(laneRoadMarkType);
|
|
|
+ }
|
|
|
+ }
|
|
|
pLS->AddLane(1,(j+1)*(1),cda_lanetype_sel[pcdalane->lanetype()],false,true);
|
|
|
pnewlane = pLS->GetLastAddedLane();
|
|
|
pnewlane->AddWidthRecord(0,pcdalane->lanewidth(),0,0,0);
|
|
|
- pnewlane->AddRoadMarkRecord(0,cda_lanemarktype_sel[pcdalane->lanemarktype()],"standard",cda_lanemarkcolor_sel[pcdalane->lanemarkcolor()],pcdalane->lanemarkwidth(),"none");
|
|
|
-
|
|
|
+ if(pmark != NULL)
|
|
|
+ {
|
|
|
+ pnewlane->AddRoadMarkRecord(0,cda_lanemarktype_sel[pmark->lanemarktype()],"standard",
|
|
|
+ cda_lanemarkcolor_sel[pmark->lanemarkcolor()],pmark->lanemarkwidth(),"none");
|
|
|
+ if(pmark->lanemarktype() == 0)
|
|
|
+ {
|
|
|
+ LaneRoadMark * pLaneRoadMark = pnewlane->GetLastAddedLaneRoadMark();
|
|
|
+ LaneRoadMarkType laneRoadMarkType(cda_lanemarktype_sel[pmark->lanemarktype()],pmark->lanemarkwidth());
|
|
|
+ laneRoadMarkType.AddLaneRoadMarkLine(pmark->lanemarklinelength(),pmark->lanemarklinespace(),0,0);
|
|
|
+ pLaneRoadMark->SetLaneRoadMarkType(laneRoadMarkType);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
if(i==2)
|
|
|
{
|
|
@@ -692,7 +727,21 @@ int CDAProc::ProcCDA(iv::map::cdadraw & xcdadraw,OpenDrive * pxodr)
|
|
|
LaneSection * pLS = pRoad->GetLaneSection(0);
|
|
|
pLS->AddLane(0,0,"none",false);
|
|
|
Lane * pcenterlane = pLS->GetLastAddedLane();
|
|
|
- pcenterlane->AddRoadMarkRecord(0,"solid solid","standard","yellow",0.15,"none");
|
|
|
+ iv::map::cdalanemarkline * pmark = xcdadraw.mutable_mlanemarkline(0);
|
|
|
+ if(pmark == NULL)
|
|
|
+ pcenterlane->AddRoadMarkRecord(0,"solid solid","standard","yellow",0.15,"none");
|
|
|
+ else
|
|
|
+ {
|
|
|
+ pcenterlane->AddRoadMarkRecord(0,cda_lanemarktype_sel[pmark->lanemarktype()],"standard",
|
|
|
+ cda_lanemarkcolor_sel[pmark->lanemarkcolor()],pmark->lanemarkwidth(),"none");
|
|
|
+ if(pmark->lanemarktype() == 0)
|
|
|
+ {
|
|
|
+ LaneRoadMark * pLaneRoadMark = pcenterlane->GetLastAddedLaneRoadMark();
|
|
|
+ LaneRoadMarkType laneRoadMarkType(cda_lanemarktype_sel[pmark->lanemarktype()],pmark->lanemarkwidth());
|
|
|
+ laneRoadMarkType.AddLaneRoadMarkLine(pmark->lanemarklinelength(),pmark->lanemarklinespace(),0,0);
|
|
|
+ pLaneRoadMark->SetLaneRoadMarkType(laneRoadMarkType);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
int j;
|
|
|
iv::map::cdadraw * pcdadraw = &xcdadraw;
|
|
@@ -704,13 +753,32 @@ int CDAProc::ProcCDA(iv::map::cdadraw & xcdadraw,OpenDrive * pxodr)
|
|
|
Lane * pnewlane = pLS->GetLastAddedLane();
|
|
|
|
|
|
pnewlane->AddWidthRecord(0,pcdalane->lanewidth(),0,0,0);
|
|
|
- pnewlane->AddRoadMarkRecord(0,cda_lanemarktype_sel[pcdalane->lanemarktype()],"standard",cda_lanemarkcolor_sel[pcdalane->lanemarkcolor()],pcdalane->lanemarkwidth(),"none");
|
|
|
+ pmark = xcdadraw.mutable_mlanemarkline(j+1);
|
|
|
+ if(pmark != NULL)
|
|
|
+ {
|
|
|
+ pnewlane->AddRoadMarkRecord(0,cda_lanemarktype_sel[pmark->lanemarktype()],"standard",
|
|
|
+ cda_lanemarkcolor_sel[pmark->lanemarkcolor()],pmark->lanemarkwidth(),"none");
|
|
|
+ if(pmark->lanemarktype() == 0)
|
|
|
+ {
|
|
|
+ LaneRoadMark * pLaneRoadMark = pnewlane->GetLastAddedLaneRoadMark();
|
|
|
+ LaneRoadMarkType laneRoadMarkType(cda_lanemarktype_sel[pmark->lanemarktype()],pmark->lanemarkwidth());
|
|
|
+ laneRoadMarkType.AddLaneRoadMarkLine(pmark->lanemarklinelength(),pmark->lanemarklinespace(),0,0);
|
|
|
+ pLaneRoadMark->SetLaneRoadMarkType(laneRoadMarkType);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
pLS->AddLane(1,(j+1)*(1),cda_lanetype_sel[pcdalane->lanetype()],false,true);
|
|
|
pnewlane = pLS->GetLastAddedLane();
|
|
|
pnewlane->AddWidthRecord(0,pcdalane->lanewidth(),0,0,0);
|
|
|
- pnewlane->AddRoadMarkRecord(0,cda_lanemarktype_sel[pcdalane->lanemarktype()],"standard",cda_lanemarkcolor_sel[pcdalane->lanemarkcolor()],pcdalane->lanemarkwidth(),"none");
|
|
|
-
|
|
|
+ pnewlane->AddRoadMarkRecord(0,cda_lanemarktype_sel[pmark->lanemarktype()],"standard",
|
|
|
+ cda_lanemarkcolor_sel[pmark->lanemarkcolor()],pmark->lanemarkwidth(),"none");
|
|
|
+ if(pmark->lanemarktype() == 0)
|
|
|
+ {
|
|
|
+ LaneRoadMark * pLaneRoadMark = pnewlane->GetLastAddedLaneRoadMark();
|
|
|
+ LaneRoadMarkType laneRoadMarkType(cda_lanemarktype_sel[pmark->lanemarktype()],pmark->lanemarkwidth());
|
|
|
+ laneRoadMarkType.AddLaneRoadMarkLine(pmark->lanemarklinelength(),pmark->lanemarklinespace(),0,0);
|
|
|
+ pLaneRoadMark->SetLaneRoadMarkType(laneRoadMarkType);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if(pgeo->geotype() == 1)
|
|
@@ -729,7 +797,21 @@ int CDAProc::ProcCDA(iv::map::cdadraw & xcdadraw,OpenDrive * pxodr)
|
|
|
LaneSection * pLS = pRoad->GetLaneSection(0);
|
|
|
pLS->AddLane(0,0,"none",false);
|
|
|
Lane * pcenterlane = pLS->GetLastAddedLane();
|
|
|
- pcenterlane->AddRoadMarkRecord(0,"solid solid","standard","yellow",0.15,"none");
|
|
|
+ iv::map::cdalanemarkline * pmark = xcdadraw.mutable_mlanemarkline(0);
|
|
|
+ if(pmark == NULL)
|
|
|
+ pcenterlane->AddRoadMarkRecord(0,"solid solid","standard","yellow",0.15,"none");
|
|
|
+ else
|
|
|
+ {
|
|
|
+ pcenterlane->AddRoadMarkRecord(0,cda_lanemarktype_sel[pmark->lanemarktype()],"standard",
|
|
|
+ cda_lanemarkcolor_sel[pmark->lanemarkcolor()],pmark->lanemarkwidth(),"none");
|
|
|
+ if(pmark->lanemarktype() == 0)
|
|
|
+ {
|
|
|
+ LaneRoadMark * pLaneRoadMark = pcenterlane->GetLastAddedLaneRoadMark();
|
|
|
+ LaneRoadMarkType laneRoadMarkType(cda_lanemarktype_sel[pmark->lanemarktype()],pmark->lanemarkwidth());
|
|
|
+ laneRoadMarkType.AddLaneRoadMarkLine(pmark->lanemarklinelength(),pmark->lanemarklinespace(),0,0);
|
|
|
+ pLaneRoadMark->SetLaneRoadMarkType(laneRoadMarkType);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
int j;
|
|
|
iv::map::cdadraw * pcdadraw = &xcdadraw;
|
|
@@ -741,13 +823,35 @@ int CDAProc::ProcCDA(iv::map::cdadraw & xcdadraw,OpenDrive * pxodr)
|
|
|
Lane * pnewlane = pLS->GetLastAddedLane();
|
|
|
|
|
|
pnewlane->AddWidthRecord(0,pcdalane->lanewidth(),0,0,0);
|
|
|
- pnewlane->AddRoadMarkRecord(0,cda_lanemarktype_sel[pcdalane->lanemarktype()],"standard",cda_lanemarkcolor_sel[pcdalane->lanemarkcolor()],pcdalane->lanemarkwidth(),"none");
|
|
|
-
|
|
|
+ pmark = xcdadraw.mutable_mlanemarkline(j+1);
|
|
|
+ if(pmark != NULL)
|
|
|
+ {
|
|
|
+ pnewlane->AddRoadMarkRecord(0,cda_lanemarktype_sel[pmark->lanemarktype()],"standard",
|
|
|
+ cda_lanemarkcolor_sel[pmark->lanemarkcolor()],pmark->lanemarkwidth(),"none");
|
|
|
+ if(pmark->lanemarktype() == 0)
|
|
|
+ {
|
|
|
+ LaneRoadMark * pLaneRoadMark = pnewlane->GetLastAddedLaneRoadMark();
|
|
|
+ LaneRoadMarkType laneRoadMarkType(cda_lanemarktype_sel[pmark->lanemarktype()],pmark->lanemarkwidth());
|
|
|
+ laneRoadMarkType.AddLaneRoadMarkLine(pmark->lanemarklinelength(),pmark->lanemarklinespace(),0,0);
|
|
|
+ pLaneRoadMark->SetLaneRoadMarkType(laneRoadMarkType);
|
|
|
+ }
|
|
|
+ }
|
|
|
pLS->AddLane(1,(j+1)*(1),cda_lanetype_sel[pcdalane->lanetype()],false,true);
|
|
|
pnewlane = pLS->GetLastAddedLane();
|
|
|
pnewlane->AddWidthRecord(0,pcdalane->lanewidth(),0,0,0);
|
|
|
- pnewlane->AddRoadMarkRecord(0,cda_lanemarktype_sel[pcdalane->lanemarktype()],"standard",cda_lanemarkcolor_sel[pcdalane->lanemarkcolor()],pcdalane->lanemarkwidth(),"none");
|
|
|
-
|
|
|
+ pmark = xcdadraw.mutable_mlanemarkline(j+1);
|
|
|
+ if(pmark != NULL)
|
|
|
+ {
|
|
|
+ pnewlane->AddRoadMarkRecord(0,cda_lanemarktype_sel[pmark->lanemarktype()],"standard",
|
|
|
+ cda_lanemarkcolor_sel[pmark->lanemarkcolor()],pmark->lanemarkwidth(),"none");
|
|
|
+ if(pmark->lanemarktype() == 0)
|
|
|
+ {
|
|
|
+ LaneRoadMark * pLaneRoadMark = pnewlane->GetLastAddedLaneRoadMark();
|
|
|
+ LaneRoadMarkType laneRoadMarkType(cda_lanemarktype_sel[pmark->lanemarktype()],pmark->lanemarkwidth());
|
|
|
+ laneRoadMarkType.AddLaneRoadMarkLine(pmark->lanemarklinelength(),pmark->lanemarklinespace(),0,0);
|
|
|
+ pLaneRoadMark->SetLaneRoadMarkType(laneRoadMarkType);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if(pgeo->geotype() == 2)
|