|
@@ -2170,14 +2170,19 @@ void Object::DeleteObjectlaneValidity(unsigned int index)
|
|
|
}
|
|
|
|
|
|
|
|
|
-signal_positionRoad::signal_positionRoad(double s, double t, double zOffset, double hOffset, double pitch, double roll)
|
|
|
+signal_positionRoad::signal_positionRoad(std::string roadid,double s, double t, double zOffset, double hOffset)
|
|
|
{
|
|
|
+ mroadid = roadid;
|
|
|
ms = s;
|
|
|
mt = t;
|
|
|
mzOffset = zOffset;
|
|
|
mhOffset = hOffset;
|
|
|
- mpitch = pitch;
|
|
|
- mroll = roll;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+std::string signal_positionRoad::Getroadid()
|
|
|
+{
|
|
|
+ return mroadid;
|
|
|
}
|
|
|
|
|
|
double signal_positionRoad::Gets()
|
|
@@ -2200,14 +2205,23 @@ double signal_positionRoad::GethOffset()
|
|
|
return mhOffset;
|
|
|
}
|
|
|
|
|
|
-double signal_positionRoad::Getpitch()
|
|
|
+int signal_positionRoad::Getpitch(double & pitch)
|
|
|
{
|
|
|
- return mpitch;
|
|
|
+ if(mpitch.size() == 0)return 0;
|
|
|
+ pitch = mpitch[0];
|
|
|
+ return 1;
|
|
|
}
|
|
|
|
|
|
-double signal_positionRoad::Getroll()
|
|
|
+int signal_positionRoad::Getroll(double & roll)
|
|
|
{
|
|
|
- return mroll;
|
|
|
+ if(mroll.size() == 0)return 0;
|
|
|
+ roll = mroll[0];
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+void signal_positionRoad::Setroadid(std::string roadid)
|
|
|
+{
|
|
|
+ mroadid = roadid;
|
|
|
}
|
|
|
|
|
|
void signal_positionRoad::Sets(double s)
|
|
@@ -2232,22 +2246,32 @@ void signal_positionRoad::SethOffset(double hOffset)
|
|
|
|
|
|
void signal_positionRoad::Setpitch(double pitch)
|
|
|
{
|
|
|
- mpitch = pitch;
|
|
|
+ if(mpitch.size()>0)mpitch.clear();
|
|
|
+ mpitch.push_back(pitch);
|
|
|
}
|
|
|
|
|
|
void signal_positionRoad::Setroll(double roll)
|
|
|
{
|
|
|
- mroll = roll;
|
|
|
+ if(mroll.size()>0)mroll.clear();
|
|
|
+ mroll.push_back(roll);
|
|
|
+}
|
|
|
+
|
|
|
+void signal_positionRoad::Resetpitch()
|
|
|
+{
|
|
|
+ if(mpitch.size()>0)mpitch.clear();
|
|
|
+}
|
|
|
+
|
|
|
+void signal_positionRoad::Resetroll()
|
|
|
+{
|
|
|
+ if(mroll.size()>0)mroll.clear();
|
|
|
}
|
|
|
|
|
|
-signal_positionInertial::signal_positionInertial(double x, double y,double z, double hdg, double pitch, double roll)
|
|
|
+signal_positionInertial::signal_positionInertial(double x, double y,double z, double hdg)
|
|
|
{
|
|
|
mx = x;
|
|
|
my = y;
|
|
|
mz = z;
|
|
|
mhdg = hdg;
|
|
|
- mpitch = pitch;
|
|
|
- mroll = roll;
|
|
|
}
|
|
|
|
|
|
double signal_positionInertial::Getx()
|
|
@@ -2270,14 +2294,18 @@ double signal_positionInertial::Gethdg()
|
|
|
return mhdg;
|
|
|
}
|
|
|
|
|
|
-double signal_positionInertial::Getpitch()
|
|
|
+int signal_positionInertial::Getpitch(double & pitch)
|
|
|
{
|
|
|
- return mpitch;
|
|
|
+ if(mpitch.size() == 0)return 0;
|
|
|
+ pitch = mpitch[0];
|
|
|
+ return 1;
|
|
|
}
|
|
|
|
|
|
-double signal_positionInertial::Getroll()
|
|
|
+int signal_positionInertial::Getroll(double & roll)
|
|
|
{
|
|
|
- return mroll;
|
|
|
+ if(mroll.size() == 0)return 0;
|
|
|
+ roll = mroll[0];
|
|
|
+ return 1;
|
|
|
}
|
|
|
|
|
|
void signal_positionInertial::Setx(double x)
|
|
@@ -2302,12 +2330,24 @@ void signal_positionInertial::Sethdg(double hdg)
|
|
|
|
|
|
void signal_positionInertial::Setpitch(double pitch)
|
|
|
{
|
|
|
- mpitch = pitch;
|
|
|
+ if(mpitch.size() > 0)mpitch.clear();
|
|
|
+ mpitch.push_back(pitch);
|
|
|
}
|
|
|
|
|
|
void signal_positionInertial::Setroll(double roll)
|
|
|
{
|
|
|
- mroll = roll;
|
|
|
+ if(mroll.size() > 0)mroll.clear();
|
|
|
+ mroll.push_back(roll);
|
|
|
+}
|
|
|
+
|
|
|
+void signal_positionInertial::Resetpitch()
|
|
|
+{
|
|
|
+ if(mpitch.size() > 0)mpitch.clear();
|
|
|
+}
|
|
|
+
|
|
|
+void signal_positionInertial::Resetroll()
|
|
|
+{
|
|
|
+ if(mroll.size() > 0)mroll.clear();
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2436,7 +2476,7 @@ Signal::Signal(double s, double t, std::string id, std::string name, bool dynami
|
|
|
mwidth = width;
|
|
|
mpsignal_laneValidity = 0;
|
|
|
mpsignal_positionInertial = 0;
|
|
|
- mpsignal_positionRoad = new signal_positionRoad(s,t,zOffset,hOffset,pitch,roll);
|
|
|
+ mpsignal_positionRoad = new signal_positionRoad("",s,t,zOffset,hOffset);
|
|
|
}
|
|
|
|
|
|
Signal::Signal()
|
|
@@ -2479,17 +2519,41 @@ Signal& Signal::operator=(const Signal& x)
|
|
|
this->mpsignal_positionInertial = new signal_positionInertial(x.mpsignal_positionInertial->Getx(),
|
|
|
x.mpsignal_positionInertial->Gety(),
|
|
|
x.mpsignal_positionInertial->Getz(),
|
|
|
- x.mpsignal_positionInertial->Gethdg(),
|
|
|
- x.mpsignal_positionInertial->Getpitch(),
|
|
|
- x.mpsignal_positionInertial->Getroll());
|
|
|
+ x.mpsignal_positionInertial->Gethdg());
|
|
|
+ double pitch,roll;
|
|
|
+ if(x.mpsignal_positionInertial->Getpitch(pitch) == 1)
|
|
|
+ {
|
|
|
+ this->mpsignal_positionInertial->Setpitch(pitch);
|
|
|
+ }
|
|
|
+ if(x.mpsignal_positionInertial->Getroll(roll) == 1)
|
|
|
+ {
|
|
|
+ this->mpsignal_positionInertial->Setroll(roll);
|
|
|
+ }
|
|
|
}
|
|
|
- this->mpsignal_laneValidity = 0;
|
|
|
- if(x.mpsignal_laneValidity != 0)
|
|
|
+ if(x.mpsignal_positionRoad != 0)
|
|
|
{
|
|
|
- this->mpsignal_laneValidity = new signal_laneValidity(x.mpsignal_laneValidity->GetfromLane(),
|
|
|
- x.mpsignal_laneValidity->GettoLane());
|
|
|
+ this->mpsignal_positionRoad = new signal_positionRoad(x.mpsignal_positionRoad->Getroadid(),
|
|
|
+ x.mpsignal_positionRoad->Gets(),
|
|
|
+ x.mpsignal_positionRoad->Gett(),
|
|
|
+ x.mpsignal_positionRoad->GetzOffset(),
|
|
|
+ x.mpsignal_positionRoad->GethOffset());
|
|
|
+ double pitch,roll;
|
|
|
+ if(x.mpsignal_positionRoad->Getpitch(pitch) == 1)
|
|
|
+ {
|
|
|
+ this->mpsignal_positionRoad->Setpitch(pitch);
|
|
|
+ }
|
|
|
+ if(x.mpsignal_positionRoad->Getroll(roll) == 1)
|
|
|
+ {
|
|
|
+ this->mpsignal_positionRoad->Setroll(roll);
|
|
|
+ }
|
|
|
}
|
|
|
- this->mpsignal_positionRoad = new signal_positionRoad(ms,mt,mzOffset,mhOffset,mpitch,mroll);
|
|
|
+ this->mlaneValidity = x.mlaneValidity;
|
|
|
+ this->mLastAddedlaneValidity = x.mLastAddedlaneValidity;
|
|
|
+ this->mdependency = x.mdependency;
|
|
|
+ this->mLastAddedDependency = x.mLastAddedDependency;
|
|
|
+ this->mreference = x.mreference;
|
|
|
+ this->mLastAddedReference = x.mLastAddedReference;
|
|
|
+
|
|
|
}
|
|
|
return *this;
|
|
|
}
|
|
@@ -2512,23 +2576,45 @@ Signal::Signal(const Signal &x)
|
|
|
mroll = x.mroll;
|
|
|
mheight = x.mheight;
|
|
|
mwidth = x.mwidth;
|
|
|
- this->mpsignal_positionInertial = 0;
|
|
|
if(x.mpsignal_positionInertial != 0)
|
|
|
{
|
|
|
this->mpsignal_positionInertial = new signal_positionInertial(x.mpsignal_positionInertial->Getx(),
|
|
|
x.mpsignal_positionInertial->Gety(),
|
|
|
x.mpsignal_positionInertial->Getz(),
|
|
|
- x.mpsignal_positionInertial->Gethdg(),
|
|
|
- x.mpsignal_positionInertial->Getpitch(),
|
|
|
- x.mpsignal_positionInertial->Getroll());
|
|
|
+ x.mpsignal_positionInertial->Gethdg());
|
|
|
+ double pitch,roll;
|
|
|
+ if(x.mpsignal_positionInertial->Getpitch(pitch) == 1)
|
|
|
+ {
|
|
|
+ this->mpsignal_positionInertial->Setpitch(pitch);
|
|
|
+ }
|
|
|
+ if(x.mpsignal_positionInertial->Getroll(roll) == 1)
|
|
|
+ {
|
|
|
+ this->mpsignal_positionInertial->Setroll(roll);
|
|
|
+ }
|
|
|
}
|
|
|
- this->mpsignal_laneValidity = 0;
|
|
|
- if(x.mpsignal_laneValidity != 0)
|
|
|
+ if(x.mpsignal_positionRoad != 0)
|
|
|
{
|
|
|
- this->mpsignal_laneValidity = new signal_laneValidity(x.mpsignal_laneValidity->GetfromLane(),
|
|
|
- x.mpsignal_laneValidity->GettoLane());
|
|
|
+ this->mpsignal_positionRoad = new signal_positionRoad(x.mpsignal_positionRoad->Getroadid(),
|
|
|
+ x.mpsignal_positionRoad->Gets(),
|
|
|
+ x.mpsignal_positionRoad->Gett(),
|
|
|
+ x.mpsignal_positionRoad->GetzOffset(),
|
|
|
+ x.mpsignal_positionRoad->GethOffset());
|
|
|
+ double pitch,roll;
|
|
|
+ if(x.mpsignal_positionRoad->Getpitch(pitch) == 1)
|
|
|
+ {
|
|
|
+ this->mpsignal_positionRoad->Setpitch(pitch);
|
|
|
+ }
|
|
|
+ if(x.mpsignal_positionRoad->Getroll(roll) == 1)
|
|
|
+ {
|
|
|
+ this->mpsignal_positionRoad->Setroll(roll);
|
|
|
+ }
|
|
|
}
|
|
|
- mpsignal_positionRoad = new signal_positionRoad(ms,mt,mzOffset,mhOffset,mpitch,mroll);
|
|
|
+ this->mlaneValidity = x.mlaneValidity;
|
|
|
+ this->mLastAddedlaneValidity = x.mLastAddedlaneValidity;
|
|
|
+ this->mdependency = x.mdependency;
|
|
|
+ this->mLastAddedDependency = x.mLastAddedDependency;
|
|
|
+ this->mreference = x.mreference;
|
|
|
+ this->mLastAddedReference = x.mLastAddedReference;
|
|
|
}
|
|
|
|
|
|
double Signal::Gets()
|
|
@@ -2714,11 +2800,12 @@ void Signal::SetlaneValidity(int fromLane, int toLane)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void Signal::SetpositionRoad(double s, double t, double zOffset, double hOffset, double pitch,double roll)
|
|
|
+void Signal::SetpositionRoad(double s, double t, double zOffset, double hOffset)
|
|
|
{
|
|
|
if(mpsignal_positionRoad == 0)
|
|
|
{
|
|
|
- mpsignal_positionRoad = new signal_positionRoad(s,t,zOffset,hOffset,pitch,roll);
|
|
|
+ mpsignal_positionRoad = new signal_positionRoad("",s,t,zOffset,hOffset);
|
|
|
+
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -2726,16 +2813,17 @@ void Signal::SetpositionRoad(double s, double t, double zOffset, double hOffset,
|
|
|
mpsignal_positionRoad->Sett(t);
|
|
|
mpsignal_positionRoad->SetzOffset(zOffset);
|
|
|
mpsignal_positionRoad->SethOffset(hOffset);
|
|
|
- mpsignal_positionRoad->Setpitch(pitch);
|
|
|
- mpsignal_positionRoad->Setroll(roll);
|
|
|
+
|
|
|
}
|
|
|
+ mpsignal_positionInertial = NULL;
|
|
|
}
|
|
|
|
|
|
-void Signal::SetpositionInertial(double x, double y, double z, double hdg, double pitch, double roll)
|
|
|
+void Signal::SetpositionInertial(double x, double y, double z, double hdg)
|
|
|
{
|
|
|
if(mpsignal_positionInertial == 0)
|
|
|
{
|
|
|
- mpsignal_positionInertial = new signal_positionInertial(x,y,z,hdg,pitch,roll);
|
|
|
+ mpsignal_positionInertial = new signal_positionInertial(x,y,z,hdg);
|
|
|
+
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -2743,9 +2831,9 @@ void Signal::SetpositionInertial(double x, double y, double z, double hdg, doubl
|
|
|
mpsignal_positionInertial->Sety(y);
|
|
|
mpsignal_positionInertial->Setz(z);
|
|
|
mpsignal_positionInertial->Sethdg(hdg);
|
|
|
- mpsignal_positionInertial->Setpitch(pitch);
|
|
|
- mpsignal_positionInertial->Setroll(roll);
|
|
|
+
|
|
|
}
|
|
|
+ mpsignal_positionRoad = NULL;
|
|
|
}
|
|
|
|
|
|
vector<signal_laneValidity> * Signal::GetlaneValidityVector()
|
|
@@ -2879,6 +2967,15 @@ unsigned int Signal::GetReferenceCount()
|
|
|
return static_cast<unsigned int >(mreference.size()) ;
|
|
|
}
|
|
|
|
|
|
+bool Signal::CheckInterval(double s_check)
|
|
|
+{
|
|
|
+ if (s_check>=ms)
|
|
|
+ return true;
|
|
|
+ else
|
|
|
+ return false;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
signal_reference* Signal::GetLastReference()
|
|
|
{
|
|
|
if (mreference.size()>0)
|
|
@@ -3026,3 +3123,11 @@ void signals_signalReference::DeletelaneValidity(unsigned int index)
|
|
|
{
|
|
|
mlaneValidity.erase(mlaneValidity.begin()+index);
|
|
|
}
|
|
|
+
|
|
|
+bool signals_signalReference::CheckInterval(double s_check)
|
|
|
+{
|
|
|
+ if (s_check>=ms)
|
|
|
+ return true;
|
|
|
+ else
|
|
|
+ return false;
|
|
|
+}
|