|
@@ -95,6 +95,20 @@ unsigned int Junction::AddJunctionDirectConnection( string id, string linkedRoad
|
|
|
return mLastAddedJunctionDirectConnection;
|
|
|
}
|
|
|
|
|
|
+unsigned int Junction::AddJunctionCrossingspriority(string high, string low)
|
|
|
+{
|
|
|
+ mJunctionCrossingspriorityVector.push_back(JunctionCrossingspriority(high,low));
|
|
|
+ mLastAddedJunctionCrossingspriority = mJunctionCrossingspriorityVector.size()-1;
|
|
|
+ return mLastAddedJunctionCrossingspriority;
|
|
|
+}
|
|
|
+
|
|
|
+unsigned int Junction::AddJunctionCrossingsroadSection(string id,string roadId,double sStart,double sEnd)
|
|
|
+{
|
|
|
+ mJunctionCrossingsroadSectionVector.push_back(JunctionCrossingsroadSection(id,roadId,sStart,sEnd));
|
|
|
+ mLastAddedJunctionCrossingsroadSection = mJunctionCrossingsroadSectionVector.size()-1;
|
|
|
+ return mLastAddedJunctionCrossingsroadSection;
|
|
|
+}
|
|
|
+
|
|
|
//--------------
|
|
|
|
|
|
/**
|
|
@@ -155,6 +169,26 @@ unsigned int Junction::CloneJunctionDirectConnection(unsigned int index)
|
|
|
return mLastAddedJunctionDirectConnection;
|
|
|
}
|
|
|
|
|
|
+unsigned int Junction::CloneJunctionCrossingspriority(unsigned int index)
|
|
|
+{
|
|
|
+ if(index<mJunctionCrossingspriorityVector.size()-1)
|
|
|
+ mJunctionCrossingspriorityVector.insert(mJunctionCrossingspriorityVector.begin()+index+1, mJunctionCrossingspriorityVector[index]);
|
|
|
+ else if(index==mJunctionCrossingspriorityVector.size()-1)
|
|
|
+ mJunctionCrossingspriorityVector.push_back(mJunctionCrossingspriorityVector[index]);
|
|
|
+ mLastAddedJunctionCrossingspriority=index+1;
|
|
|
+ return mLastAddedJunctionCrossingspriority;
|
|
|
+}
|
|
|
+
|
|
|
+unsigned int Junction::CloneJunctionCrossingsroadSection(unsigned int index)
|
|
|
+{
|
|
|
+ if(index<mJunctionCrossingsroadSectionVector.size()-1)
|
|
|
+ mJunctionCrossingsroadSectionVector.insert(mJunctionCrossingsroadSectionVector.begin()+index+1, mJunctionCrossingsroadSectionVector[index]);
|
|
|
+ else if(index==mJunctionCrossingsroadSectionVector.size()-1)
|
|
|
+ mJunctionCrossingsroadSectionVector.push_back(mJunctionCrossingsroadSectionVector[index]);
|
|
|
+ mLastAddedJunctionCrossingsroadSection=index+1;
|
|
|
+ return mLastAddedJunctionCrossingsroadSection;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* Methods used to delete child records from the respective vectors
|
|
|
*/
|
|
@@ -181,6 +215,15 @@ void Junction::DeleteJunctionDirectConnection(unsigned int index)
|
|
|
mJunctionDirectConnectionVector.erase(mJunctionDirectConnectionVector.begin()+index);
|
|
|
}
|
|
|
|
|
|
+void Junction::DeleteJunctionCrossingspriority(unsigned int index)
|
|
|
+{
|
|
|
+ mJunctionCrossingspriorityVector.erase(mJunctionCrossingspriorityVector.begin()+index);
|
|
|
+}
|
|
|
+void Junction::DeleteJunctionCrossingsroadSection(unsigned int index)
|
|
|
+{
|
|
|
+ mJunctionCrossingsroadSectionVector.erase(mJunctionCrossingsroadSectionVector.begin()+index);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* Return the name of the junction
|
|
|
*/
|
|
@@ -364,7 +407,7 @@ JunctionCrossPath* Junction::GetLastAddedJunctionCrossPath()
|
|
|
|
|
|
|
|
|
std::vector<JunctionDirectConnection>* Junction::GetJunctionDirectConnectionVector()
|
|
|
-{ return & mJunctionDirectConnectionVector;}
|
|
|
+{ return &mJunctionDirectConnectionVector;}
|
|
|
|
|
|
unsigned int Junction::GetJunctionDirectConnectionCount()
|
|
|
{ return mJunctionDirectConnectionVector.size();}
|
|
@@ -388,7 +431,82 @@ JunctionDirectConnection * Junction::GetLastAddedJunctionDirectConnection()
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
|
+std::vector<JunctionCrossingspriority>* Junction::GetJunctionCrossingspriorityVector()
|
|
|
+{ return &mJunctionCrossingspriorityVector;}
|
|
|
+
|
|
|
+unsigned int Junction::GetJunctionCrossingspriorityCount()
|
|
|
+{ return mJunctionCrossingspriorityVector.size();}
|
|
|
+
|
|
|
+JunctionCrossingspriority * Junction::GetJunctionCrossingspriority(unsigned int i)
|
|
|
+{ return &mJunctionCrossingspriorityVector.at(i);}
|
|
|
+
|
|
|
+JunctionCrossingspriority * Junction::GetLastJunctionCrossingspriority()
|
|
|
+{
|
|
|
+ if(mJunctionCrossingspriorityVector.size()>0)
|
|
|
+ return &mJunctionCrossingspriorityVector.at(mJunctionCrossingspriorityVector.size()-1);
|
|
|
+ else
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
+JunctionCrossingspriority * Junction::GetLastAddedJunctionCrossingspriority()
|
|
|
+{
|
|
|
+ if(mLastAddedJunctionCrossingspriority<mJunctionCrossingspriorityVector.size())
|
|
|
+ return &mJunctionCrossingspriorityVector.at(mLastAddedJunctionCrossingspriority);
|
|
|
+ else
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
+std::vector<JunctionCrossingsroadSection>* Junction::GetJunctionCrossingsroadSectionVector()
|
|
|
+{ return &mJunctionCrossingsroadSectionVector;}
|
|
|
+
|
|
|
+unsigned int Junction::GetJunctionCrossingsroadSectionCount()
|
|
|
+{ return mJunctionCrossingsroadSectionVector.size();}
|
|
|
+
|
|
|
+JunctionCrossingsroadSection * Junction::GetJunctionCrossingsroadSection(unsigned int i)
|
|
|
+{ return &mJunctionCrossingsroadSectionVector.at(i);}
|
|
|
+
|
|
|
+JunctionCrossingsroadSection * Junction::GetLastJunctionCrossingsroadSection()
|
|
|
+{
|
|
|
+ if(mJunctionCrossingsroadSectionVector.size()>0)
|
|
|
+ return &mJunctionCrossingsroadSectionVector.at(mJunctionCrossingsroadSectionVector.size()-1);
|
|
|
+ else
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
|
|
|
+JunctionCrossingsroadSection * Junction::GetLastAddedJunctionCrossingsroadSection()
|
|
|
+{
|
|
|
+ if(mLastAddedJunctionCrossingsroadSection<mJunctionCrossingsroadSectionVector.size())
|
|
|
+ return &mJunctionCrossingsroadSectionVector.at(mLastAddedJunctionCrossingsroadSection);
|
|
|
+ else
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+int Junction::GetJunctionplanView(JunctionplanView & planView)
|
|
|
+{
|
|
|
+ if(mJunctionplanView.size() == 0)return 0;
|
|
|
+ planView = mJunctionplanView[0];
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+void Junction::SetJunctionplanView(JunctionplanView planView)
|
|
|
+{
|
|
|
+ mJunctionplanView.clear();
|
|
|
+ mJunctionplanView.push_back(planView);
|
|
|
+}
|
|
|
+
|
|
|
+int Junction::GetJunctionboundary(Junctionboundary & boundary)
|
|
|
+{
|
|
|
+ if(mJunctionboundary.size() == 0)return 0;
|
|
|
+ boundary = mJunctionboundary[0];
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+void Junction::SetJunctionboundary(Junctionboundary boundary)
|
|
|
+{
|
|
|
+ mJunctionboundary.clear();
|
|
|
+ mJunctionboundary.push_back(boundary);
|
|
|
+}
|
|
|
//--------------
|
|
|
|
|
|
|
|
@@ -993,3 +1111,434 @@ JunctionLaneLink* JunctionDirectConnection::GetLastAddedJunctionLaneLink()
|
|
|
else
|
|
|
return NULL;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+JunctionCrossingspriority::JunctionCrossingspriority(string high, string low)
|
|
|
+{
|
|
|
+ mhigh = high;
|
|
|
+ mlow = low;
|
|
|
+}
|
|
|
+
|
|
|
+string JunctionCrossingspriority::Gethigh()
|
|
|
+{
|
|
|
+ return mhigh;
|
|
|
+}
|
|
|
+string JunctionCrossingspriority::Getlow()
|
|
|
+{
|
|
|
+ return mlow;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossingspriority::Sethigh(string high)
|
|
|
+{
|
|
|
+ mhigh = high;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossingspriority::Setlow(string low)
|
|
|
+{
|
|
|
+ mlow = low;
|
|
|
+}
|
|
|
+
|
|
|
+JunctionCrossingsroadSection::JunctionCrossingsroadSection(string id,string roadId,double sStart,double sEnd)
|
|
|
+{
|
|
|
+ mid = id;
|
|
|
+ mroadId = roadId;
|
|
|
+ msStart = sStart;
|
|
|
+ msEnd = sEnd;
|
|
|
+}
|
|
|
+
|
|
|
+string JunctionCrossingsroadSection::Getid()
|
|
|
+{
|
|
|
+ return mid;
|
|
|
+}
|
|
|
+
|
|
|
+string JunctionCrossingsroadSection::GetroadId()
|
|
|
+{
|
|
|
+ return mroadId;
|
|
|
+}
|
|
|
+
|
|
|
+double JunctionCrossingsroadSection::GetsStart()
|
|
|
+{
|
|
|
+ return msStart;
|
|
|
+}
|
|
|
+
|
|
|
+double JunctionCrossingsroadSection::GetsEnd()
|
|
|
+{
|
|
|
+ return msEnd;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossingsroadSection::Setid(string id)
|
|
|
+{
|
|
|
+ mid = id;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossingsroadSection::SetroadId(string roadId)
|
|
|
+{
|
|
|
+ mroadId = roadId;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossingsroadSection::SetsStart(double sStart)
|
|
|
+{
|
|
|
+ msStart = sStart;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionCrossingsroadSection::SetsEnd(double sEnd)
|
|
|
+{
|
|
|
+ msEnd = sEnd;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+JunctionplanViewgeometry::JunctionplanViewgeometry(double s,double x,double y,double hdg,double length)
|
|
|
+{
|
|
|
+ ms = s;
|
|
|
+ mx = x;
|
|
|
+ my = y;
|
|
|
+ mhdg = hdg;
|
|
|
+ mlength = length;
|
|
|
+}
|
|
|
+
|
|
|
+JunctionplanViewgeometry::JunctionplanViewgeometry()
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+double JunctionplanViewgeometry::Gets()
|
|
|
+{
|
|
|
+ return ms;
|
|
|
+}
|
|
|
+
|
|
|
+double JunctionplanViewgeometry::Getx()
|
|
|
+{
|
|
|
+ return mx;
|
|
|
+}
|
|
|
+
|
|
|
+double JunctionplanViewgeometry::Gety()
|
|
|
+{
|
|
|
+ return my;
|
|
|
+}
|
|
|
+
|
|
|
+double JunctionplanViewgeometry::Gethdg()
|
|
|
+{
|
|
|
+ return mhdg;
|
|
|
+}
|
|
|
+
|
|
|
+double JunctionplanViewgeometry::Getlength()
|
|
|
+{
|
|
|
+ return mlength;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionplanViewgeometry::Sets(double s)
|
|
|
+{
|
|
|
+ ms = s;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionplanViewgeometry::Setx(double x)
|
|
|
+{
|
|
|
+ mx = x;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionplanViewgeometry::Sety(double y)
|
|
|
+{
|
|
|
+ my = y;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionplanViewgeometry::Sethdg(double hdg)
|
|
|
+{
|
|
|
+ mhdg = hdg;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionplanViewgeometry::Setlength(double length)
|
|
|
+{
|
|
|
+ mlength = length;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+JunctionplanView::JunctionplanView()
|
|
|
+{
|
|
|
+ mgeometryvector.clear();
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+unsigned int JunctionplanView::Addgeometry(double s,double x,double y,double hdg,double length)
|
|
|
+{
|
|
|
+ mgeometryvector.push_back(JunctionplanViewgeometry(s,x,y,hdg,length));
|
|
|
+ mLastAddedJunctionplanViewgeometry = mgeometryvector.size()-1;
|
|
|
+ return mLastAddedJunctionplanViewgeometry;
|
|
|
+}
|
|
|
+
|
|
|
+unsigned int JunctionplanView::Clonegeometry(unsigned int index)
|
|
|
+{
|
|
|
+ if(index<mgeometryvector.size()-1)
|
|
|
+ mgeometryvector.insert(mgeometryvector.begin()+index+1, mgeometryvector[index]);
|
|
|
+ else if(index==mgeometryvector.size()-1)
|
|
|
+ mgeometryvector.push_back(mgeometryvector[index]);
|
|
|
+ mLastAddedJunctionplanViewgeometry=index+1;
|
|
|
+ return mLastAddedJunctionplanViewgeometry;
|
|
|
+}
|
|
|
+
|
|
|
+void JunctionplanView::Deletegeometry(unsigned int index)
|
|
|
+{
|
|
|
+ mgeometryvector.erase(mgeometryvector.begin()+index);
|
|
|
+}
|
|
|
+
|
|
|
+std::vector<JunctionplanViewgeometry>* JunctionplanView::GetgeometryVector()
|
|
|
+{
|
|
|
+ return &mgeometryvector;
|
|
|
+}
|
|
|
+
|
|
|
+unsigned int JunctionplanView::GetgeometryCount()
|
|
|
+{
|
|
|
+ return mgeometryvector.size();
|
|
|
+}
|
|
|
+
|
|
|
+JunctionplanViewgeometry * JunctionplanView::Getgeometry(unsigned int i)
|
|
|
+{
|
|
|
+ return &mgeometryvector.at(i);
|
|
|
+}
|
|
|
+
|
|
|
+JunctionplanViewgeometry * JunctionplanView::GetLastgeometry()
|
|
|
+{
|
|
|
+ if(mgeometryvector.size()>0)
|
|
|
+ return &mgeometryvector.at(mgeometryvector.size()-1);
|
|
|
+ else
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
+JunctionplanViewgeometry * JunctionplanView::GetLastAddedgeometry()
|
|
|
+{
|
|
|
+ if(mLastAddedJunctionplanViewgeometry<mgeometryvector.size())
|
|
|
+ return &mgeometryvector.at(mLastAddedJunctionplanViewgeometry);
|
|
|
+ else
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+Junctionboundarysegmentlane::Junctionboundarysegmentlane(int boundaryLane,string roadId,double sEnd,double sStart)
|
|
|
+{
|
|
|
+ mboundaryLane = boundaryLane;
|
|
|
+ mroadId = roadId;
|
|
|
+ msEnd = sEnd;
|
|
|
+ msStart = sStart;
|
|
|
+ mtype = "lane";
|
|
|
+}
|
|
|
+
|
|
|
+int Junctionboundarysegmentlane::GetboundaryLane()
|
|
|
+{
|
|
|
+ return mboundaryLane;
|
|
|
+}
|
|
|
+
|
|
|
+string Junctionboundarysegmentlane::GetroadId()
|
|
|
+{
|
|
|
+ return mroadId;
|
|
|
+}
|
|
|
+
|
|
|
+double Junctionboundarysegmentlane::Junctionboundarysegmentlane::GetsEnd()
|
|
|
+{
|
|
|
+ return msEnd;
|
|
|
+}
|
|
|
+double Junctionboundarysegmentlane::GetsStart()
|
|
|
+{
|
|
|
+ return msStart;
|
|
|
+}
|
|
|
+
|
|
|
+void Junctionboundarysegmentlane::SetboundaryLane(int boundaryLane)
|
|
|
+{
|
|
|
+ mboundaryLane = boundaryLane;
|
|
|
+}
|
|
|
+
|
|
|
+void Junctionboundarysegmentlane::SetroadId(string roadId)
|
|
|
+{
|
|
|
+ mroadId = roadId;
|
|
|
+}
|
|
|
+
|
|
|
+void Junctionboundarysegmentlane::SetsEnd(double sEnd)
|
|
|
+{
|
|
|
+ msEnd = sEnd;
|
|
|
+}
|
|
|
+
|
|
|
+void Junctionboundarysegmentlane::SetsStart(double sStart)
|
|
|
+{
|
|
|
+ msStart = sStart;
|
|
|
+}
|
|
|
+
|
|
|
+Junctionboundarysegmentjoint::Junctionboundarysegmentjoint(string contactPoint,string roadId)
|
|
|
+{
|
|
|
+ mcontactPoint = contactPoint;
|
|
|
+ mroadId = roadId;
|
|
|
+ mjointLaneEnd.clear();
|
|
|
+ mjointLaneStart.clear();
|
|
|
+ mtransitionLength.clear();
|
|
|
+}
|
|
|
+
|
|
|
+string Junctionboundarysegmentjoint::GetcontactPoint()
|
|
|
+{
|
|
|
+ return mcontactPoint;
|
|
|
+}
|
|
|
+
|
|
|
+string Junctionboundarysegmentjoint::GetroadId()
|
|
|
+{
|
|
|
+ return mroadId;
|
|
|
+}
|
|
|
+
|
|
|
+int Junctionboundarysegmentjoint::GetjointLaneEnd(int & jointLaneEnd)
|
|
|
+{
|
|
|
+ if(mjointLaneEnd.size() == 0)return 0;
|
|
|
+ jointLaneEnd = mjointLaneEnd[0];
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+int Junctionboundarysegmentjoint::GetjointLaneStart(int & jointLaneStart)
|
|
|
+{
|
|
|
+ if(mjointLaneStart.size() == 0)return 0;
|
|
|
+ jointLaneStart = mjointLaneStart[0];
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+int Junctionboundarysegmentjoint::GettransitionLength(double & transitionLength)
|
|
|
+{
|
|
|
+ if(mtransitionLength.size() == 0)return 0;
|
|
|
+ transitionLength = mtransitionLength[0];
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void Junctionboundarysegmentjoint::SetcontactPoint(string contactPoint)
|
|
|
+{
|
|
|
+ mcontactPoint = contactPoint;
|
|
|
+}
|
|
|
+
|
|
|
+void Junctionboundarysegmentjoint::SetroadId(string roadId)
|
|
|
+{
|
|
|
+ mroadId = roadId;
|
|
|
+}
|
|
|
+
|
|
|
+void Junctionboundarysegmentjoint::SetjointLaneEnd(int jointLaneEnd)
|
|
|
+{
|
|
|
+ mjointLaneEnd.clear();
|
|
|
+ mjointLaneEnd.push_back(jointLaneEnd);
|
|
|
+}
|
|
|
+
|
|
|
+void Junctionboundarysegmentjoint::SetjointLaneStart(int jointLaneStart)
|
|
|
+{
|
|
|
+ mjointLaneStart.clear();
|
|
|
+ mjointLaneStart.push_back(jointLaneStart);
|
|
|
+}
|
|
|
+
|
|
|
+void Junctionboundarysegmentjoint::SettransitionLength(double transitionLength)
|
|
|
+{
|
|
|
+ mtransitionLength.clear();
|
|
|
+ mtransitionLength.push_back(transitionLength);
|
|
|
+}
|
|
|
+
|
|
|
+Junctionboundary::Junctionboundary()
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+unsigned int Junctionboundary::AddJunctionboundarysegmentlane(int boundaryLane,string roadId,double sEnd,double sStart)
|
|
|
+{
|
|
|
+ mJunctionboundarysegmentlanevector.push_back(Junctionboundarysegmentlane(boundaryLane,roadId,sEnd,sStart));
|
|
|
+ mLastAddedJunctionboundarysegmentlane = mJunctionboundarysegmentlanevector.size()-1;
|
|
|
+ return mLastAddedJunctionboundarysegmentlane;
|
|
|
+}
|
|
|
+
|
|
|
+unsigned int Junctionboundary::CloneJunctionboundarysegmentlane(unsigned int index)
|
|
|
+{
|
|
|
+ if(index<mJunctionboundarysegmentlanevector.size()-1)
|
|
|
+ mJunctionboundarysegmentlanevector.insert(mJunctionboundarysegmentlanevector.begin()+index+1, mJunctionboundarysegmentlanevector[index]);
|
|
|
+ else if(index==mJunctionboundarysegmentlanevector.size()-1)
|
|
|
+ mJunctionboundarysegmentlanevector.push_back(mJunctionboundarysegmentlanevector[index]);
|
|
|
+ mLastAddedJunctionboundarysegmentlane=index+1;
|
|
|
+ return mLastAddedJunctionboundarysegmentlane;
|
|
|
+}
|
|
|
+
|
|
|
+void Junctionboundary::DeleteJunctionboundarysegmentlane(unsigned int index)
|
|
|
+{
|
|
|
+ mJunctionboundarysegmentlanevector.erase(mJunctionboundarysegmentlanevector.begin()+index);
|
|
|
+}
|
|
|
+
|
|
|
+std::vector<Junctionboundarysegmentlane>* Junctionboundary::GetJunctionboundarysegmentlaneVector()
|
|
|
+{
|
|
|
+ return &mJunctionboundarysegmentlanevector;
|
|
|
+}
|
|
|
+
|
|
|
+unsigned int Junctionboundary::GetJunctionboundarysegmentlaneCount()
|
|
|
+{
|
|
|
+ return mJunctionboundarysegmentlanevector.size();
|
|
|
+}
|
|
|
+
|
|
|
+Junctionboundarysegmentlane * Junctionboundary::GetJunctionboundarysegmentlane(unsigned int i)
|
|
|
+{
|
|
|
+ return &mJunctionboundarysegmentlanevector.at(i);
|
|
|
+}
|
|
|
+
|
|
|
+Junctionboundarysegmentlane * Junctionboundary::GetLastJunctionboundarysegmentlane()
|
|
|
+{
|
|
|
+ if(mJunctionboundarysegmentlanevector.size()>0)
|
|
|
+ return &mJunctionboundarysegmentlanevector.at(mJunctionboundarysegmentlanevector.size()-1);
|
|
|
+ else
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
+Junctionboundarysegmentlane * Junctionboundary::GetLastAddedJunctionboundarysegmentlane()
|
|
|
+{
|
|
|
+ if(mLastAddedJunctionboundarysegmentlane<mJunctionboundarysegmentlanevector.size())
|
|
|
+ return &mJunctionboundarysegmentlanevector.at(mLastAddedJunctionboundarysegmentlane);
|
|
|
+ else
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
+unsigned int Junctionboundary::AddJunctionboundarysegmentjoint(string contactPoint,string roadId)
|
|
|
+{
|
|
|
+ mJunctionboundarysegmentjointvector.push_back(Junctionboundarysegmentjoint(contactPoint,roadId));
|
|
|
+ mLastAddedJunctionboundarysegmentjoint = mJunctionboundarysegmentjointvector.size()-1;
|
|
|
+ return mLastAddedJunctionboundarysegmentjoint;
|
|
|
+}
|
|
|
+
|
|
|
+unsigned int Junctionboundary::CloneJunctionboundarysegmentjoint(unsigned int index)
|
|
|
+{
|
|
|
+ if(index<mJunctionboundarysegmentjointvector.size()-1)
|
|
|
+ mJunctionboundarysegmentjointvector.insert(mJunctionboundarysegmentjointvector.begin()+index+1, mJunctionboundarysegmentjointvector[index]);
|
|
|
+ else if(index==mJunctionboundarysegmentjointvector.size()-1)
|
|
|
+ mJunctionboundarysegmentjointvector.push_back(mJunctionboundarysegmentjointvector[index]);
|
|
|
+ mLastAddedJunctionboundarysegmentjoint=index+1;
|
|
|
+ return mLastAddedJunctionboundarysegmentjoint;
|
|
|
+}
|
|
|
+
|
|
|
+void Junctionboundary::DeleteJunctionboundarysegmentjoint(unsigned int index)
|
|
|
+{
|
|
|
+ mJunctionboundarysegmentjointvector.erase(mJunctionboundarysegmentjointvector.begin()+index);
|
|
|
+}
|
|
|
+
|
|
|
+std::vector<Junctionboundarysegmentjoint>* Junctionboundary::GetJunctionboundarysegmentjointVector()
|
|
|
+{
|
|
|
+ return &mJunctionboundarysegmentjointvector;
|
|
|
+}
|
|
|
+
|
|
|
+unsigned int Junctionboundary::GetJunctionboundarysegmentjointCount()
|
|
|
+{
|
|
|
+ return mJunctionboundarysegmentjointvector.size();
|
|
|
+}
|
|
|
+
|
|
|
+Junctionboundarysegmentjoint * Junctionboundary::GetJunctionboundarysegmentjoint(unsigned int i)
|
|
|
+{
|
|
|
+ return &mJunctionboundarysegmentjointvector.at(i);
|
|
|
+}
|
|
|
+
|
|
|
+Junctionboundarysegmentjoint * Junctionboundary::GetLastJunctionboundarysegmentjoint()
|
|
|
+{
|
|
|
+ if(mJunctionboundarysegmentjointvector.size()>0)
|
|
|
+ return &mJunctionboundarysegmentjointvector.at(mJunctionboundarysegmentjointvector.size()-1);
|
|
|
+ else
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
+Junctionboundarysegmentjoint * Junctionboundary::GetLastAddedJunctionboundarysegmentjoint()
|
|
|
+{
|
|
|
+ if(mLastAddedJunctionboundarysegmentjoint<mJunctionboundarysegmentjointvector.size())
|
|
|
+ return &mJunctionboundarysegmentjointvector.at(mLastAddedJunctionboundarysegmentjoint);
|
|
|
+ else
|
|
|
+ return NULL;
|
|
|
+
|
|
|
+}
|
|
|
+
|