From b310f2a7cb5693024d6edc21bdce9a97f521b76d Mon Sep 17 00:00:00 2001 From: Joan Sola <jsola@iri.upc.edu> Date: Tue, 4 Jun 2019 17:38:08 +0200 Subject: [PATCH] Add setNonEstimated() --- include/core/frame/frame_base.h | 1 + src/frame/frame_base.cpp | 28 ++++++++++++++++++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/include/core/frame/frame_base.h b/include/core/frame/frame_base.h index 44e1cfbd2..0fdb349c1 100644 --- a/include/core/frame/frame_base.h +++ b/include/core/frame/frame_base.h @@ -80,6 +80,7 @@ class FrameBase : public NodeBase, public std::enable_shared_from_this<FrameBase bool isKeyOrAux() const; // set type + void setNonEstimated(); void setKey(); void setAux(); diff --git a/src/frame/frame_base.cpp b/src/frame/frame_base.cpp index 49c5ae4f2..c8ac508f5 100644 --- a/src/frame/frame_base.cpp +++ b/src/frame/frame_base.cpp @@ -155,6 +155,20 @@ void FrameBase::removeStateBlocks() } } +void FrameBase::setNonEstimated() +{ + // unregister if previously estimated + if (isKeyOrAux()) + removeStateBlocks(); + + type_ = NON_ESTIMATED; + if (getTrajectory()) + { + getTrajectory()->sortFrame(shared_from_this()); + getTrajectory()->updateLastFrames(); + } +} + void FrameBase::setKey() { // register if previously not estimated @@ -163,8 +177,11 @@ void FrameBase::setKey() // WOLF_DEBUG("Set Key", this->id()); type_ = KEY; - getTrajectory()->sortFrame(shared_from_this()); - getTrajectory()->updateLastFrames(); + if (getTrajectory()) + { + getTrajectory()->sortFrame(shared_from_this()); + getTrajectory()->updateLastFrames(); + } } void FrameBase::setAux() @@ -174,8 +191,11 @@ void FrameBase::setAux() // WOLF_DEBUG("Set Auxiliary", this->id()); type_ = AUXILIARY; - getTrajectory()->sortFrame(shared_from_this()); - getTrajectory()->updateLastFrames(); + if (getTrajectory()) + { + getTrajectory()->sortFrame(shared_from_this()); + getTrajectory()->updateLastFrames(); + } } void FrameBase::fix() -- GitLab