From 666b3e88e4d6a76091e7d6bed1a675fc8d6b28da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20Sol=C3=A0?= <jsola@iri.upc.edu> Date: Tue, 15 Nov 2016 00:43:04 +0100 Subject: [PATCH] Sort frame if timestamp is modified --- src/frame_base.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/frame_base.h b/src/frame_base.h index 8d1dfb1d4..5707c22f7 100644 --- a/src/frame_base.h +++ b/src/frame_base.h @@ -84,7 +84,6 @@ class FrameBase : public NodeBase, public std::enable_shared_from_this<FrameBase // State blocks public: - void registerNewStateBlocks(); const std::vector<StateBlockPtr>& getStateBlockVec() const; std::vector<StateBlockPtr>& getStateBlockVec(); StateBlockPtr getPPtr() const; @@ -93,13 +92,14 @@ class FrameBase : public NodeBase, public std::enable_shared_from_this<FrameBase void setPPtr(const StateBlockPtr _p_ptr); void setOPtr(const StateBlockPtr _o_ptr); void setVPtr(const StateBlockPtr _v_ptr); + void registerNewStateBlocks(); + private: + void removeStateBlocks(); protected: StateBlockPtr getStateBlockPtr(unsigned int _i) const; void setStateBlockPtr(unsigned int _i, const StateBlockPtr _sb_ptr); void resizeStateBlockVec(int _size); - private: - void removeStateBlocks(); // states public: @@ -203,6 +203,8 @@ inline bool FrameBase::isFixed() const inline void FrameBase::setTimeStamp(const TimeStamp& _ts) { time_stamp_ = _ts; + if (isKey() && getTrajectoryPtr() != nullptr) + getTrajectoryPtr()->sortFrame(shared_from_this()); } inline void FrameBase::getTimeStamp(TimeStamp& _ts) const -- GitLab