From 4b75206e9db50461aa09195bf9ad012db18f9373 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joan=20Vallv=C3=A9=20Navarro?= <jvallve@iri.upc.edu>
Date: Wed, 10 Jul 2019 12:39:10 +0200
Subject: [PATCH] trajectory function working with const iterators

---
 include/core/common/wolf.h                | 3 ++-
 include/core/trajectory/trajectory_base.h | 4 ++--
 src/trajectory/trajectory_base.cpp        | 4 ++--
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/include/core/common/wolf.h b/include/core/common/wolf.h
index 09a6c11b1..210d7d84c 100644
--- a/include/core/common/wolf.h
+++ b/include/core/common/wolf.h
@@ -215,8 +215,9 @@ struct MatrixSizeCheck
 
 #define WOLF_LIST_TYPEDEFS(ClassName) \
         class ClassName; \
-        typedef std::list<ClassName##Ptr>          ClassName##PtrList; \
+        typedef std::list<ClassName##Ptr>             ClassName##PtrList; \
         typedef ClassName##PtrList::iterator          ClassName##Iter; \
+        typedef ClassName##PtrList::const_iterator    ClassName##ConstIter; \
         typedef ClassName##PtrList::reverse_iterator  ClassName##RevIter;
 
 #define WOLF_STRUCT_PTR_TYPEDEFS(StructName) \
diff --git a/include/core/trajectory/trajectory_base.h b/include/core/trajectory/trajectory_base.h
index 590a423d3..0645be841 100644
--- a/include/core/trajectory/trajectory_base.h
+++ b/include/core/trajectory/trajectory_base.h
@@ -56,8 +56,8 @@ class TrajectoryBase : public NodeBase, public std::enable_shared_from_this<Traj
         void getFactorList(FactorBasePtrList & _fac_list);
 
     protected:
-        FrameBaseIter computeFrameOrder(FrameBasePtr _frame_ptr);
-        void moveFrame(FrameBasePtr _frm_ptr, FrameBaseIter _place);
+        FrameBaseConstIter computeFrameOrder(FrameBasePtr _frame_ptr);
+        void moveFrame(FrameBasePtr _frm_ptr, FrameBaseConstIter _place);
 };
 
 inline const FrameBasePtrList& TrajectoryBase::getFrameList() const
diff --git a/src/trajectory/trajectory_base.cpp b/src/trajectory/trajectory_base.cpp
index 34921e3f4..35a1f9997 100644
--- a/src/trajectory/trajectory_base.cpp
+++ b/src/trajectory/trajectory_base.cpp
@@ -55,7 +55,7 @@ void TrajectoryBase::sortFrame(FrameBasePtr _frame_ptr)
     moveFrame(_frame_ptr, computeFrameOrder(_frame_ptr));
 }
 
-void TrajectoryBase::moveFrame(FrameBasePtr _frm_ptr, FrameBaseIter _place)
+void TrajectoryBase::moveFrame(FrameBasePtr _frm_ptr, FrameBaseConstIter _place)
 {
     if (*_place != _frm_ptr)
     {
@@ -65,7 +65,7 @@ void TrajectoryBase::moveFrame(FrameBasePtr _frm_ptr, FrameBaseIter _place)
     }
 }
 
-FrameBaseIter TrajectoryBase::computeFrameOrder(FrameBasePtr _frame_ptr)
+FrameBaseConstIter TrajectoryBase::computeFrameOrder(FrameBasePtr _frame_ptr)
 {
     for (auto frm_rit = getFrameList().rbegin(); frm_rit != getFrameList().rend(); frm_rit++)
         if ((*frm_rit)!= _frame_ptr && (*frm_rit)->isKeyOrAux() && (*frm_rit)->getTimeStamp() <= _frame_ptr->getTimeStamp())
-- 
GitLab