|
@@ -74,6 +74,14 @@ unsigned int Junction::AddJunctionController ( string id, string type)
|
|
|
mLastAddedJunctionController = mJunctionControllerVector.size()-1;
|
|
|
return mLastAddedJunctionController;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+unsigned int Junction::AddJunctionCrossPath(string id,string crossingRoad, string roadAtStart,string roadAtEnd,JunctionCrossPathStartLaneLink startLaneLink,JunctionCrossPathEndLaneLink endLaneLink)
|
|
|
+{
|
|
|
+ mJunctionCrossPathVector.push_back(JunctionCrossPath(id,crossingRoad,roadAtStart,roadAtEnd,startLaneLink,endLaneLink));
|
|
|
+ mLastAddedJunctionCrossPath = mJunctionCrossPathVector.size() -1;
|
|
|
+ return mLastAddedJunctionCrossPath;
|
|
|
+}
|
|
|
//--------------
|
|
|
|
|
|
/**
|
|
@@ -112,6 +120,16 @@ unsigned int Junction::CloneJunctionController(unsigned int index)
|
|
|
return mLastAddedJunctionController;
|
|
|
}
|
|
|
|
|
|
+unsigned int Junction::CloneJunctionPath(unsigned int index)
|
|
|
+{
|
|
|
+ if(index<mJunctionCrossPathVector.size()-1)
|
|
|
+ mJunctionCrossPathVector.insert(mJunctionCrossPathVector.begin()+index+1, mJunctionCrossPathVector[index]);
|
|
|
+ else if(index==mJunctionCrossPathVector.size()-1)
|
|
|
+ mJunctionCrossPathVector.push_back(mJunctionCrossPathVector[index]);
|
|
|
+ mLastAddedJunctionCrossPath=index+1;
|
|
|
+ return mLastAddedJunctionCrossPath;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* Methods used to delete child records from the respective vectors
|
|
|
*/
|
|
@@ -128,6 +146,11 @@ void Junction::DeleteJunctionController(unsigned int index)
|
|
|
mJunctionControllerVector.erase(mJunctionControllerVector.begin()+index);
|
|
|
}
|
|
|
|
|
|
+void Junction::DeleteJunctionCrossPath(unsigned int index)
|
|
|
+{
|
|
|
+ mJunctionCrossPathVector.erase(mJunctionCrossPathVector.begin()+index);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* Return the name of the junction
|
|
|
*/
|
|
@@ -277,6 +300,34 @@ JunctionController* Junction::GetLastAddedJunctionController()
|
|
|
else
|
|
|
return NULL;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+std::vector<JunctionCrossPath>* Junction::GetJunctionCrossPathVector()
|
|
|
+{ return &mJunctionCrossPathVector; }
|
|
|
+
|
|
|
+unsigned int Junction::GetJunctionCrossPathCount()
|
|
|
+{ return mJunctionCrossPathVector.size(); }
|
|
|
+
|
|
|
+JunctionCrossPath* Junction::GetJunctionCrossPath(unsigned int i)
|
|
|
+{ return &mJunctionCrossPathVector.at(i); }
|
|
|
+
|
|
|
+JunctionCrossPath* Junction::GetLastJunctionCrossPath()
|
|
|
+{
|
|
|
+ if(mJunctionCrossPathVector.size()>0)
|
|
|
+ return &mJunctionCrossPathVector.at(mJunctionCrossPathVector.size()-1);
|
|
|
+ else
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
+JunctionCrossPath* Junction::GetLastAddedJunctionCrossPath()
|
|
|
+{
|
|
|
+ if(mLastAddedJunctionCrossPath<mJunctionCrossPathVector.size())
|
|
|
+ return &mJunctionCrossPathVector.at(mLastAddedJunctionCrossPath);
|
|
|
+ else
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
//--------------
|
|
|
|
|
|
|
|
@@ -438,6 +489,7 @@ JunctionLaneLink* JunctionConnection::GetLastAddedJunctionLaneLink()
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* Junction lane link class. Holds all the information for a lane link record
|
|
|
*
|
|
@@ -562,4 +614,160 @@ string JunctionController::GetId()
|
|
|
* Get the type of control
|
|
|
*/
|
|
|
string JunctionController::GetType()
|
|
|
-{ return mType; }
|
|
|
+{ return mType; }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+JunctionCrossPathStartLaneLink::JunctionCrossPathStartLaneLink(double s,int nFrom,int nTo)
|
|
|
+{
|
|
|
+ mS = s;
|
|
|
+ mFrom = nFrom;
|
|
|
+ mTo = nTo;
|
|
|
+}
|
|
|
+
|
|
|
+JunctionCrossPathStartLaneLink::JunctionCrossPathStartLaneLink()
|
|
|
+{
|
|
|
+ JunctionCrossPathStartLaneLink(0.0,0,0);
|
|
|
+}
|
|
|
+
|
|
|
+double JunctionCrossPathStartLaneLink::GetS()
|
|
|
+{
|
|
|
+ return mS;
|
|
|
+}
|
|
|
+
|
|
|
+int JunctionCrossPathStartLaneLink::GetFrom()
|
|
|
+{
|
|
|
+ return mFrom;
|
|
|
+}
|
|
|
+
|
|
|
+int JunctionCrossPathStartLaneLink::GetTo()
|
|
|
+{
|
|
|
+ return mTo;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossPathStartLaneLink::SetS(double s)
|
|
|
+{
|
|
|
+ mS = s;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossPathStartLaneLink::SetFrom(int nFrom)
|
|
|
+{
|
|
|
+ mFrom = nFrom;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossPathStartLaneLink::SetTo(int nTo)
|
|
|
+{
|
|
|
+ mTo = nTo;
|
|
|
+}
|
|
|
+
|
|
|
+JunctionCrossPathEndLaneLink::JunctionCrossPathEndLaneLink(double s,int nFrom,int nTo)
|
|
|
+{
|
|
|
+ mS = s;
|
|
|
+ mFrom = nFrom;
|
|
|
+ mTo = nTo;
|
|
|
+}
|
|
|
+
|
|
|
+JunctionCrossPathEndLaneLink::JunctionCrossPathEndLaneLink()
|
|
|
+{
|
|
|
+ JunctionCrossPathEndLaneLink(0.0,0,0);
|
|
|
+}
|
|
|
+
|
|
|
+double JunctionCrossPathEndLaneLink::GetS()
|
|
|
+{
|
|
|
+ return mS;
|
|
|
+}
|
|
|
+
|
|
|
+int JunctionCrossPathEndLaneLink::GetFrom()
|
|
|
+{
|
|
|
+ return mFrom;
|
|
|
+}
|
|
|
+
|
|
|
+int JunctionCrossPathEndLaneLink::GetTo()
|
|
|
+{
|
|
|
+ return mTo;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossPathEndLaneLink::SetS(double s)
|
|
|
+{
|
|
|
+ mS = s;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossPathEndLaneLink::SetFrom(int nFrom)
|
|
|
+{
|
|
|
+ mFrom = nFrom;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossPathEndLaneLink::SetTo(int nTo)
|
|
|
+{
|
|
|
+ mTo = nTo;
|
|
|
+}
|
|
|
+
|
|
|
+JunctionCrossPath::JunctionCrossPath(string id,string crossingRoad, string roadAtStart,string roadAtEnd,JunctionCrossPathStartLaneLink startLaneLink,JunctionCrossPathEndLaneLink endLaneLink)
|
|
|
+{
|
|
|
+ mId = id;
|
|
|
+ mcrossingRoad = crossingRoad;
|
|
|
+ mroadAtStart = roadAtStart;
|
|
|
+ mroadAtEnd = roadAtEnd;
|
|
|
+ mstartLaneLink = startLaneLink;
|
|
|
+ mendLaneLink = endLaneLink;
|
|
|
+}
|
|
|
+
|
|
|
+string JunctionCrossPath::GetId()
|
|
|
+{
|
|
|
+ return mId;
|
|
|
+}
|
|
|
+
|
|
|
+string JunctionCrossPath::GetcrossingRoad()
|
|
|
+{
|
|
|
+ return mcrossingRoad;
|
|
|
+}
|
|
|
+
|
|
|
+string JunctionCrossPath::GetroadAtStart()
|
|
|
+{
|
|
|
+ return mroadAtStart;
|
|
|
+}
|
|
|
+
|
|
|
+string JunctionCrossPath::GetroadAtEnd()
|
|
|
+{
|
|
|
+ return mroadAtEnd;
|
|
|
+}
|
|
|
+
|
|
|
+JunctionCrossPathStartLaneLink JunctionCrossPath::GetstartLaneLink()
|
|
|
+{
|
|
|
+ return mstartLaneLink;
|
|
|
+}
|
|
|
+
|
|
|
+JunctionCrossPathEndLaneLink JunctionCrossPath::GetendLaneLink()
|
|
|
+{
|
|
|
+ return mendLaneLink;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossPath::SetId(string id)
|
|
|
+{
|
|
|
+ mId = id;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossPath::SetcrossingRoad(string crossingRoad)
|
|
|
+{
|
|
|
+ mcrossingRoad = crossingRoad;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossPath::SetroadAtStart(string roadAtStart)
|
|
|
+{
|
|
|
+ mroadAtStart = roadAtStart;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossPath::SetroadAtEnd(string roadAtEnd)
|
|
|
+{
|
|
|
+ mroadAtEnd = roadAtEnd;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossPath::SetJunctionCrossPathStartLaneLink(JunctionCrossPathStartLaneLink xStart)
|
|
|
+{
|
|
|
+ mstartLaneLink = xStart;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossPath::SetJunctionCrossPathEndLaneLink(JunctionCrossPathEndLaneLink xEnd)
|
|
|
+{
|
|
|
+ mendLaneLink = xEnd;
|
|
|
+}
|