|
@@ -474,6 +474,27 @@ unsigned int Road::GetSurfaceCRGCount()
|
|
|
{
|
|
|
return static_cast<unsigned int>(mSurfaceCRGVector.size());
|
|
|
}
|
|
|
+
|
|
|
+//-------------------------------------------------
|
|
|
+
|
|
|
+vector<Railroad_Switch> *Road::GetRailroadSwitchVector()
|
|
|
+{
|
|
|
+ return &mRailroadSwitchVector;
|
|
|
+}
|
|
|
+
|
|
|
+Railroad_Switch* Road::GetRailroadSwitch(unsigned int i)
|
|
|
+{
|
|
|
+ if((mRailroadSwitchVector.size()>0)&&(i<mRailroadSwitchVector.size()))
|
|
|
+ return &mRailroadSwitchVector.at(i);
|
|
|
+ else
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
+unsigned int Road::GetRailroadSwitchCount()
|
|
|
+{
|
|
|
+ return static_cast<unsigned int>(mRailroadSwitchVector.size());
|
|
|
+}
|
|
|
+
|
|
|
//-------------------------------------------------
|
|
|
|
|
|
/**
|
|
@@ -591,6 +612,14 @@ surface_CRG * Road::GetLastSurfaceCRG()
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
|
+Railroad_Switch * Road::GetLastRailroadSwitch()
|
|
|
+{
|
|
|
+ if(mRailroadSwitchVector.size()>0)
|
|
|
+ return &mRailroadSwitchVector.at(mRailroadSwitchVector.size()-1);
|
|
|
+ else
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* Getters for the last added child records in their respective vectors
|
|
@@ -704,6 +733,14 @@ surface_CRG* Road::GetLastAddedSurfaceCRG()
|
|
|
else
|
|
|
return NULL;
|
|
|
}
|
|
|
+
|
|
|
+Railroad_Switch * Road::GetLastAddedRailroadSwitch()
|
|
|
+{
|
|
|
+ if(mLastAddedRailroadSwitch<mRailroadSwitchVector.size())
|
|
|
+ return &mRailroadSwitchVector.at(mLastAddedRailroadSwitch);
|
|
|
+ else
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
//-------------------------------------------------
|
|
|
|
|
|
/**
|
|
@@ -913,6 +950,12 @@ unsigned int Road::AddSurfaceCRG(std::string file,double sStart,double sEnd,std:
|
|
|
|
|
|
}
|
|
|
|
|
|
+unsigned int Road::AddRailroadSwitch(std::string name, std::string id,std::string position, Railroad_Switch_MainTrack mainTrack, Railroad_Switch_SideTrack sideTrack)
|
|
|
+{
|
|
|
+ mRailroadSwitchVector.push_back(Railroad_Switch(name,id,position,mainTrack,sideTrack));
|
|
|
+ return static_cast<unsigned int >(mRailroadSwitchVector.size() -1);
|
|
|
+}
|
|
|
+
|
|
|
//-------------
|
|
|
unsigned int Road::AddObjectsTunnel(double s,double length,string id,string type)
|
|
|
{
|
|
@@ -1216,6 +1259,16 @@ unsigned int Road::CloneSurfaceCRG(unsigned int index)
|
|
|
return mLastAddedSurfaceCRG;
|
|
|
}
|
|
|
|
|
|
+unsigned int Road::CloneRailroadSwitch(unsigned int index)
|
|
|
+{
|
|
|
+ if(index<mRailroadSwitchVector.size()-1)
|
|
|
+ mRailroadSwitchVector.insert(mRailroadSwitchVector.begin()+index+1, mRailroadSwitchVector[index]);
|
|
|
+ else if(index==mRailroadSwitchVector.size()-1)
|
|
|
+ mRailroadSwitchVector.push_back(mRailroadSwitchVector[index]);
|
|
|
+ mLastAddedRailroadSwitch=index+1;
|
|
|
+ return mLastAddedRailroadSwitch;
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* Methods used to delete child records from the respective vectors
|
|
@@ -1290,6 +1343,11 @@ void Road::DeleteSurfaceCRG(unsigned int index)
|
|
|
mSurfaceCRGVector.erase(mSurfaceCRGVector.begin()+index);
|
|
|
}
|
|
|
|
|
|
+void Road::DeleteRailroadSwitch(unsigned int index)
|
|
|
+{
|
|
|
+ mRailroadSwitchVector.erase(mRailroadSwitchVector.begin()+index);
|
|
|
+}
|
|
|
+
|
|
|
//-------------------------------------------------
|
|
|
// EVALUATION METHODS
|
|
|
|
|
@@ -2345,4 +2403,198 @@ int surface::CheckCRGInterval(double s_check)
|
|
|
}
|
|
|
|
|
|
|
|
|
+Railroad_Switch_MainTrack::Railroad_Switch_MainTrack(std::string id, double s, std::string dir)
|
|
|
+{
|
|
|
+ mid = id;
|
|
|
+ ms = s;
|
|
|
+ mdir = dir;
|
|
|
+}
|
|
|
+
|
|
|
+Railroad_Switch_MainTrack::Railroad_Switch_MainTrack()
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+std::string Railroad_Switch_MainTrack::Getid()
|
|
|
+{
|
|
|
+ return mid;
|
|
|
+}
|
|
|
+
|
|
|
+double Railroad_Switch_MainTrack::Gets()
|
|
|
+{
|
|
|
+ return ms;
|
|
|
+}
|
|
|
+
|
|
|
+std::string Railroad_Switch_MainTrack::Getdir()
|
|
|
+{
|
|
|
+ return mdir;
|
|
|
+}
|
|
|
+
|
|
|
+void Railroad_Switch_MainTrack::Setid(std::string id)
|
|
|
+{
|
|
|
+ mid = id;
|
|
|
+}
|
|
|
+
|
|
|
+void Railroad_Switch_MainTrack::Sets(double s)
|
|
|
+{
|
|
|
+ ms = s;
|
|
|
+}
|
|
|
+
|
|
|
+void Railroad_Switch_MainTrack::Setdir(std::string dir)
|
|
|
+{
|
|
|
+ mdir = dir;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+Railroad_Switch_SideTrack::Railroad_Switch_SideTrack(std::string id, double s, std::string dir)
|
|
|
+{
|
|
|
+ mid = id;
|
|
|
+ ms = s;
|
|
|
+ mdir = dir;
|
|
|
+}
|
|
|
+
|
|
|
+Railroad_Switch_SideTrack::Railroad_Switch_SideTrack()
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+std::string Railroad_Switch_SideTrack::Getid()
|
|
|
+{
|
|
|
+ return mid;
|
|
|
+}
|
|
|
+
|
|
|
+double Railroad_Switch_SideTrack::Gets()
|
|
|
+{
|
|
|
+ return ms;
|
|
|
+}
|
|
|
+
|
|
|
+std::string Railroad_Switch_SideTrack::Getdir()
|
|
|
+{
|
|
|
+ return mdir;
|
|
|
+}
|
|
|
+
|
|
|
+void Railroad_Switch_SideTrack::Setid(std::string id)
|
|
|
+{
|
|
|
+ mid = id;
|
|
|
+}
|
|
|
+
|
|
|
+void Railroad_Switch_SideTrack::Sets(double s)
|
|
|
+{
|
|
|
+ ms = s;
|
|
|
+}
|
|
|
+
|
|
|
+void Railroad_Switch_SideTrack::Setdir(std::string dir)
|
|
|
+{
|
|
|
+ mdir = dir;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+Railroad_Switch_Partner::Railroad_Switch_Partner(std::string id)
|
|
|
+{
|
|
|
+ mid = id;
|
|
|
+}
|
|
|
+
|
|
|
+Railroad_Switch_Partner::Railroad_Switch_Partner()
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+int Railroad_Switch_Partner::Getname(std::string & name)
|
|
|
+{
|
|
|
+ if(mname.size() == 0)return 0;
|
|
|
+ name = mname[0];
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+std::string Railroad_Switch_Partner::Getid()
|
|
|
+{
|
|
|
+ return mid;
|
|
|
+}
|
|
|
+
|
|
|
+void Railroad_Switch_Partner::Setname(std::string name)
|
|
|
+{
|
|
|
+ if(mname.size()>0)mname.clear();
|
|
|
+ mname.push_back(name);
|
|
|
+}
|
|
|
+
|
|
|
+void Railroad_Switch_Partner::Setid(std::string id)
|
|
|
+{
|
|
|
+ mid = id;
|
|
|
+}
|
|
|
+
|
|
|
+void Railroad_Switch_Partner::Resetname()
|
|
|
+{
|
|
|
+ if(mname.size()>0)mname.clear();
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+Railroad_Switch::Railroad_Switch(std::string name, std::string id, std::string position,Railroad_Switch_MainTrack mainTrack,Railroad_Switch_SideTrack sideTrack)
|
|
|
+{
|
|
|
+ mname = name;
|
|
|
+ mid = id;
|
|
|
+ mposition = position;
|
|
|
+ mMainTrack = mainTrack;
|
|
|
+ mSideTrack = sideTrack;
|
|
|
+}
|
|
|
+
|
|
|
+std::string Railroad_Switch::Getname()
|
|
|
+{
|
|
|
+ return mname;
|
|
|
+}
|
|
|
+
|
|
|
+std::string Railroad_Switch::Getid()
|
|
|
+{
|
|
|
+ return mid;
|
|
|
+}
|
|
|
+
|
|
|
+std::string Railroad_Switch::Getposition()
|
|
|
+{
|
|
|
+ return mposition;
|
|
|
+}
|
|
|
+
|
|
|
+void Railroad_Switch::Setname(std::string name)
|
|
|
+{
|
|
|
+ mname = name;
|
|
|
+}
|
|
|
+
|
|
|
+void Railroad_Switch::Setid(std::string id)
|
|
|
+{
|
|
|
+ mid = id;
|
|
|
+}
|
|
|
+
|
|
|
+void Railroad_Switch::Setposition(std::string position)
|
|
|
+{
|
|
|
+ mposition = position;
|
|
|
+}
|
|
|
+
|
|
|
+void Railroad_Switch::SetPartner(Railroad_Switch_Partner & partner)
|
|
|
+{
|
|
|
+ if(mPartner.size() > 0)mPartner.clear();
|
|
|
+ mPartner.push_back(partner);
|
|
|
+}
|
|
|
+
|
|
|
+int Railroad_Switch::GetPartner(Railroad_Switch_Partner & partner)
|
|
|
+{
|
|
|
+ if(mPartner.size() == 0)return 0;
|
|
|
+ partner = mPartner[0];
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+void Railroad_Switch::ResetPartner()
|
|
|
+{
|
|
|
+ if(mPartner.size()>0)mPartner.clear();
|
|
|
+}
|
|
|
+
|
|
|
+Railroad_Switch_MainTrack * Railroad_Switch::GetMainTrack()
|
|
|
+{
|
|
|
+ return &mMainTrack;
|
|
|
+}
|
|
|
+
|
|
|
+Railroad_Switch_SideTrack * Railroad_Switch::GetSideTrack()
|
|
|
+{
|
|
|
+ return &mSideTrack;
|
|
|
+}
|
|
|
+
|
|
|
|