Skip to content
Snippets Groups Projects
Commit 5839bd6e authored by Joan Vallvé Navarro's avatar Joan Vallvé Navarro
Browse files

added copy constructor

parent 1c39e48f
No related branches found
No related tags found
2 merge requests!20new tag,!19new tag
...@@ -26,6 +26,7 @@ class Observations ...@@ -26,6 +26,7 @@ class Observations
public: public:
// Constructor & Destructor // Constructor & Destructor
Observations(); Observations();
Observations(const Observations& obs);
~Observations(); ~Observations();
// Public objects // Public objects
......
...@@ -10,6 +10,31 @@ Observations::Observations() ...@@ -10,6 +10,31 @@ Observations::Observations()
} }
Observations::Observations(const Observations& obs)
: sat_2_idx_(obs.sat_2_idx_)
, idx_2_sat_(obs.idx_2_sat_)
, obs_(obs.obs_.size())
{
// copy all elements
for (auto i = 0; i<obs.obs_.size(); i++)
{
obs_[i].time = obs.obs_[i].time;
obs_[i].eventime = obs.obs_[i].eventime;
obs_[i].timevalid = obs.obs_[i].timevalid;
obs_[i].sat = obs.obs_[i].sat;
obs_[i].rcv = obs.obs_[i].rcv;
std::copy(obs.obs_[i].SNR, obs.obs_[i].SNR + NFREQ+NEXOBS, obs_[i].SNR);
std::copy(obs.obs_[i].LLI, obs.obs_[i].LLI + NFREQ+NEXOBS, obs_[i].LLI);
std::copy(obs.obs_[i].code, obs.obs_[i].code + NFREQ+NEXOBS, obs_[i].code);
std::copy(obs.obs_[i].qualL, obs.obs_[i].qualL + NFREQ+NEXOBS, obs_[i].qualL);
std::copy(obs.obs_[i].qualP, obs.obs_[i].qualP + NFREQ+NEXOBS, obs_[i].qualP);
obs_[i].freq = obs.obs_[i].freq;
std::copy(obs.obs_[i].L, obs.obs_[i].L + NFREQ+NEXOBS, obs_[i].L);
std::copy(obs.obs_[i].P, obs.obs_[i].P + NFREQ+NEXOBS, obs_[i].P);
std::copy(obs.obs_[i].D, obs.obs_[i].D + NFREQ+NEXOBS, obs_[i].D);
}
}
Observations::~Observations() Observations::~Observations()
{ {
} }
...@@ -28,19 +53,20 @@ void Observations::addObservation(const obsd_t & obs) ...@@ -28,19 +53,20 @@ void Observations::addObservation(const obsd_t & obs)
// copy obsd_t object // copy obsd_t object
obsd_t copy_obs; obsd_t copy_obs;
std::copy(obs.D, obs.D + 3, copy_obs.D); copy_obs.time = obs.time;
std::copy(obs.L, obs.L + 3, copy_obs.L); copy_obs.eventime = obs.eventime;
std::copy(obs.LLI, obs.LLI + 3, copy_obs.LLI); copy_obs.timevalid = obs.timevalid;
std::copy(obs.P, obs.P + 3, copy_obs.P); copy_obs.sat = obs.sat;
std::copy(obs.SNR, obs.SNR + 3, copy_obs.SNR); copy_obs.rcv = obs.rcv;
std::copy(obs.code, obs.code + 3, copy_obs.code); std::copy(obs.SNR, obs.SNR + NFREQ+NEXOBS, copy_obs.SNR);
std::copy(obs.qualL, obs.qualL + 3, copy_obs.qualL); std::copy(obs.LLI, obs.LLI + NFREQ+NEXOBS, copy_obs.LLI);
copy_obs.eventime = obs.eventime; std::copy(obs.code, obs.code + NFREQ+NEXOBS, copy_obs.code);
std::copy(obs.qualL, obs.qualL + NFREQ+NEXOBS, copy_obs.qualL);
std::copy(obs.qualP, obs.qualP + NFREQ+NEXOBS, copy_obs.qualP);
copy_obs.freq = obs.freq; copy_obs.freq = obs.freq;
copy_obs.rcv = obs.rcv; std::copy(obs.L, obs.L + NFREQ+NEXOBS, copy_obs.L);
copy_obs.sat = obs.sat; std::copy(obs.P, obs.P + NFREQ+NEXOBS, copy_obs.P);
copy_obs.time = obs.time; std::copy(obs.D, obs.D + NFREQ+NEXOBS, copy_obs.D);
copy_obs.timevalid = obs.timevalid;
assert(!hasSatellite(copy_obs.sat) && "adding an observation of a satellite already stored!"); assert(!hasSatellite(copy_obs.sat) && "adding an observation of a satellite already stored!");
this->obs_.push_back(copy_obs); this->obs_.push_back(copy_obs);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment