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