|
@@ -14,10 +14,14 @@ int AutoRoadContact::CalcContact(Road *pRoad1, Road *pRoad2,int & contacttype,in
|
|
|
|
|
|
double road1_start_x,road1_start_y,road1_end_x,road1_end_y,road1_start_hdg,road1_end_hdg;
|
|
double road1_start_x,road1_start_y,road1_end_x,road1_end_y,road1_start_hdg,road1_end_hdg;
|
|
double road2_start_x,road2_start_y,road2_end_x,road2_end_y,road2_start_hdg,road2_end_hdg;
|
|
double road2_start_x,road2_start_y,road2_end_x,road2_end_y,road2_start_hdg,road2_end_hdg;
|
|
- pRoad1->GetGeometryCoords(0,road1_start_x,road1_start_y,road1_start_hdg);
|
|
|
|
- pRoad1->GetGeometryCoords(pRoad1->GetRoadLength(),road1_end_x,road1_end_y,road1_end_hdg);
|
|
|
|
- pRoad2->GetGeometryCoords(0,road2_start_x,road2_start_y,road2_start_hdg);
|
|
|
|
- pRoad2->GetGeometryCoords(pRoad2->GetRoadLength(),road2_end_x,road2_end_y,road2_end_hdg);
|
|
|
|
|
|
+ int ngeo = pRoad1->GetGeometryCoords(0,road1_start_x,road1_start_y,road1_start_hdg);
|
|
|
|
+ ngeo+=pRoad1->GetGeometryCoords(pRoad1->GetRoadLength(),road1_end_x,road1_end_y,road1_end_hdg);
|
|
|
|
+ ngeo+=pRoad2->GetGeometryCoords(0,road2_start_x,road2_start_y,road2_start_hdg);
|
|
|
|
+ ngeo+=pRoad2->GetGeometryCoords(pRoad2->GetRoadLength(),road2_end_x,road2_end_y,road2_end_hdg);
|
|
|
|
+ if(ngeo<0)
|
|
|
|
+ {
|
|
|
|
+ return -1;
|
|
|
|
+ }
|
|
|
|
|
|
double dis_1s_2s = sqrt(pow(road1_start_x-road2_start_x,2)
|
|
double dis_1s_2s = sqrt(pow(road1_start_x-road2_start_x,2)
|
|
+pow(road1_start_y-road2_start_y,2));
|
|
+pow(road1_start_y-road2_start_y,2));
|
|
@@ -49,7 +53,7 @@ int AutoRoadContact::CalcContact(Road *pRoad1, Road *pRoad2,int & contacttype,in
|
|
|
|
|
|
if(contacttype == -1)
|
|
if(contacttype == -1)
|
|
{
|
|
{
|
|
- return -1;
|
|
|
|
|
|
+ return -2;
|
|
}
|
|
}
|
|
|
|
|
|
LaneSection * pLS1 = 0;
|
|
LaneSection * pLS1 = 0;
|