|
@@ -79,10 +79,17 @@ static int getmnfac(OpenDrive & mxodr,double & fmovex,double & fmovey)
|
|
fxmax = std::numeric_limits<double>::max()*(-1.0);
|
|
fxmax = std::numeric_limits<double>::max()*(-1.0);
|
|
fymin = std::numeric_limits<double>::max() *(1.0);
|
|
fymin = std::numeric_limits<double>::max() *(1.0);
|
|
fymax = std::numeric_limits<double>::max()*(-1.0);
|
|
fymax = std::numeric_limits<double>::max()*(-1.0);
|
|
|
|
+ bool bHaveRealRoad = false;
|
|
for(i=0;i<mxodr.GetRoadCount();i++)
|
|
for(i=0;i<mxodr.GetRoadCount();i++)
|
|
{
|
|
{
|
|
int j;
|
|
int j;
|
|
|
|
+
|
|
Road * pRoad = mxodr.GetRoad(i);
|
|
Road * pRoad = mxodr.GetRoad(i);
|
|
|
|
+ if(pRoad->GetRoadLength()<0.1)
|
|
|
|
+ {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ bHaveRealRoad = true;
|
|
for(j=0;j<mxodr.GetRoad(i)->GetGeometryBlockCount();j++)
|
|
for(j=0;j<mxodr.GetRoad(i)->GetGeometryBlockCount();j++)
|
|
{
|
|
{
|
|
GeometryBlock * pgeob = pRoad->GetGeometryBlock(j);
|
|
GeometryBlock * pgeob = pRoad->GetGeometryBlock(j);
|
|
@@ -100,6 +107,19 @@ static int getmnfac(OpenDrive & mxodr,double & fmovex,double & fmovey)
|
|
if(y<fymin)fymin = y;
|
|
if(y<fymin)fymin = y;
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ double x,y,hdg;
|
|
|
|
+ pRoad->GetGeometryCoords(pRoad->GetRoadLength()-0.1,x,y,hdg);
|
|
|
|
+ if(x>fxmax)fxmax = x;
|
|
|
|
+ if(x<fxmin)fxmin = x;
|
|
|
|
+ if(y>fymax)fymax = y;
|
|
|
|
+ if(y<fymin)fymin = y;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(bHaveRealRoad == false)
|
|
|
|
+ {
|
|
|
|
+ std::cout<<"No Real Road."<<std::endl;
|
|
|
|
+ return 1.0;
|
|
}
|
|
}
|
|
|
|
|
|
fmovex = 0;
|
|
fmovex = 0;
|