From da19bb06334adf90b8592a16a42be6f7ecbc965d Mon Sep 17 00:00:00 2001
From: PepMS <jmarti@iri.upc.edu>
Date: Fri, 4 Oct 2019 12:50:19 +0200
Subject: [PATCH] Changed from smart pointers to references

---
 include/gnss_utils/gnss_utils.h   |  6 +++---
 include/gnss_utils/observations.h |  2 +-
 src/gnss_utils.cpp                | 18 +++++++++---------
 src/observations.cpp              |  2 +-
 4 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/include/gnss_utils/gnss_utils.h b/include/gnss_utils/gnss_utils.h
index 0169d3e..716a8fb 100644
--- a/include/gnss_utils/gnss_utils.h
+++ b/include/gnss_utils/gnss_utils.h
@@ -37,9 +37,9 @@ namespace GNSSUtils
     Eigen::Vector3d lat_lon;     // latitude_longitude_altitude
   };
 
-  GNSSUtils::ComputePosOutput computePos(const std::shared_ptr<Observations> & _observations,
-                                    const std::shared_ptr<Navigation> & _navigation,
-                                    const std::shared_ptr<prcopt_t> & _prcopt);
+  GNSSUtils::ComputePosOutput computePos(const Observations & _observations,
+                                    const Navigation & _navigation,
+                                    const prcopt_t & _prcopt);
 
   Eigen::Vector3d ecefToLatLon(const Eigen::Vector3d & _ecef);
 }
diff --git a/include/gnss_utils/observations.h b/include/gnss_utils/observations.h
index 336a408..44a8672 100644
--- a/include/gnss_utils/observations.h
+++ b/include/gnss_utils/observations.h
@@ -32,7 +32,7 @@ namespace GNSSUtils
 
       void pushObservation(obsd_t obs);
 
-      std::vector<obsd_t> getObservations();
+      const std::vector<obsd_t> & getObservations() const;
 
 
 
diff --git a/src/gnss_utils.cpp b/src/gnss_utils.cpp
index f75f69a..f8e9b42 100644
--- a/src/gnss_utils.cpp
+++ b/src/gnss_utils.cpp
@@ -2,12 +2,12 @@
 
 namespace GNSSUtils
 {
-  GNSSUtils::ComputePosOutput computePos(const std::shared_ptr<GNSSUtils::Observations> & _observations,
-                                    const std::shared_ptr<GNSSUtils::Navigation> & _navigation,
-                                    const std::shared_ptr<prcopt_t> & _prcopt)
+  GNSSUtils::ComputePosOutput computePos(const GNSSUtils::Observations & _observations,
+                                    const GNSSUtils::Navigation & _navigation,
+                                    const prcopt_t & _prcopt)
   {
     // Remove duplicated satellites
-    uniqnav(&(_navigation->getNavigation()));
+    uniqnav(&(_navigation.getNavigation()));
 
     // Define processing options
     // prcopt_t prcopt = prcopt_default;
@@ -30,14 +30,14 @@ namespace GNSSUtils
     sol_t sol;
     sol = {{0}};
 
-    output.pos_stat = pntpos(&(_observations->getObservations()[0]), _observations->getObservations().size(),
-                            &(_navigation->getNavigation()),
-                            _prcopt.get(), &sol, NULL, NULL, msg);
+    output.pos_stat = pntpos(_observations.getObservations().data(), _observations.getObservations().size(),
+                            &(_navigation.getNavigation()),
+                            &_prcopt, &sol, NULL, NULL, msg);
 
     output.time = sol.time.time;
     output.time = sol.time.sec;
-    output.pos  = Eigen::Map<Eigen::Vector3d>(sol.rr);
-    output.vel  = Eigen::Map<Eigen::Vector3d>(&sol.rr[3]);
+    output.pos  = Eigen::Vector3d(sol.rr);
+    output.vel  = Eigen::Vector3d(&sol.rr[3]);
     output.pos_covar << sol.qr[0], sol.qr[3], sol.qr[5],
                         sol.qr[3], sol.qr[1], sol.qr[4],
                         sol.qr[5], sol.qr[3], sol.qr[2];
diff --git a/src/observations.cpp b/src/observations.cpp
index db7529d..120ba7c 100644
--- a/src/observations.cpp
+++ b/src/observations.cpp
@@ -23,7 +23,7 @@ void Observations::pushObservation(obsd_t obs)
   this->obs_vector_.push_back(obs);
 }
 
-std::vector<obsd_t> Observations::getObservations()
+const std::vector<obsd_t> & Observations::getObservations() const
 {
   return this->obs_vector_;
 }
-- 
GitLab