From e84b7b7a2103590022be9d2ddf0be02728d8a52b Mon Sep 17 00:00:00 2001
From: Sergi Hernandez Juan <shernand@iri.upc.edu>
Date: Thu, 31 Dec 2020 17:39:40 +0100
Subject: [PATCH] Moved the default and copy constructors as protected. Removed
 the parameter constructor. Added an abstract function to get the start and
 end curvature.

---
 include/opendrive_geometry.h |  6 +++---
 src/opendrive_geometry.cpp   | 10 ----------
 2 files changed, 3 insertions(+), 13 deletions(-)

diff --git a/include/opendrive_geometry.h b/include/opendrive_geometry.h
index a49f670..6296d80 100644
--- a/include/opendrive_geometry.h
+++ b/include/opendrive_geometry.h
@@ -13,6 +13,8 @@ class COpendriveGeometry
   friend class COpendriveRoadNode;
   private:
   protected:
+    COpendriveGeometry();
+    COpendriveGeometry(const COpendriveGeometry &object);
     void load(const planView::geometry_type &geometry_info);
     double scale_factor;
     double min_s; ///< Starting track coordenate "s" for the geometry.
@@ -24,14 +26,12 @@ class COpendriveGeometry
     virtual std::string get_name(void)=0;
     void set_scale_factor(double scale);
   public:
-    COpendriveGeometry();
-    COpendriveGeometry(double min_s, double max_s, double x, double y, double heading);
-    COpendriveGeometry(const COpendriveGeometry &object);
     virtual COpendriveGeometry *clone(void) = 0;
     bool get_local_pose(TOpendriveTrackPoint &track,TOpendriveLocalPoint &local) const;
     bool get_world_pose(TOpendriveTrackPoint &track,TOpendriveWorldPoint &world) const;
     bool in_range(double s) const;
     double get_length(void) const;
+    virtual void get_curvature(double &start,double &end)=0;
     void operator=(const COpendriveGeometry &object);
     friend std::ostream& operator<<(std::ostream& out, COpendriveGeometry &geom);
     virtual ~COpendriveGeometry();
diff --git a/src/opendrive_geometry.cpp b/src/opendrive_geometry.cpp
index 4f8779b..84ad25b 100644
--- a/src/opendrive_geometry.cpp
+++ b/src/opendrive_geometry.cpp
@@ -11,16 +11,6 @@ COpendriveGeometry::COpendriveGeometry()
   this->scale_factor=DEFAULT_SCALE_FACTOR;
 }
 
-COpendriveGeometry::COpendriveGeometry(double min_s, double max_s, double x, double y, double heading)
-{
-  this->min_s = min_s;
-  this->max_s = max_s;
-  this->pose.x = x;
-  this->pose.y = y;
-  this->pose.heading = heading;
-  this->scale_factor=DEFAULT_SCALE_FACTOR;
-}
-
 COpendriveGeometry::COpendriveGeometry(const COpendriveGeometry &object)
 {
   this->min_s = object.min_s;
-- 
GitLab