From a90becbc40c0fc9c6bb6ae99033a2813d604076c Mon Sep 17 00:00:00 2001
From: Sergi Hernandez Juan <shernand@iri.upc.edu>
Date: Wed, 2 Aug 2023 08:21:16 +0200
Subject: [PATCH] Solved a bug when updating the start position of a ParamPoly3
 geometry.

---
 src/opendrive_road_segment.cpp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/opendrive_road_segment.cpp b/src/opendrive_road_segment.cpp
index ee78ab6..2967ed7 100644
--- a/src/opendrive_road_segment.cpp
+++ b/src/opendrive_road_segment.cpp
@@ -942,8 +942,13 @@ COpendriveRoadSegment *COpendriveRoadSegment::get_sub_segment(node_up_ref_t &new
         new_pose.x=new_point.x;
         new_pose.y=new_point.y;
         new_pose.heading=new_point.heading;
-        geom_it->opendrive->set_start_pose(new_pose);
-        geom_it->opendrive->set_max_s(geom_it->opendrive->get_max_s()-length);
+        if(geom_it->opendrive->get_name()=="Parametric polynomial 3th degree")
+          ((COpendriveParamPoly3 *)geom_it->opendrive)->set_start_pose(new_pose,geom_it->opendrive->get_max_s()-length);
+        else
+        {
+          geom_it->opendrive->set_start_pose(new_pose);
+          geom_it->opendrive->set_max_s(geom_it->opendrive->get_max_s()-length);
+        }
         break;
       }
       else
-- 
GitLab