Skip to content
Snippets Groups Projects

Resolve "HasStateBlocks::addStateBlock() needs to register SB's"

10 files
+ 154
60
Compare changes
  • Side-by-side
  • Inline
Files
10
@@ -96,8 +96,10 @@ class FrameBase : public NodeBase, public HasStateBlocks, public std::enable_sha
// State blocks ----------------------------------------------------
public:
using HasStateBlocks::addStateBlock;
StateBlockPtr addStateBlock(const std::string& _sb_type, const StateBlockPtr& _sb);
StateBlockPtr getV() const;
void setV(const StateBlockPtr _v_ptr);
protected:
virtual void setProblem(ProblemPtr _problem) final;
@@ -192,11 +194,6 @@ inline StateBlockPtr FrameBase::getV() const
return getStateBlock("V");
}
inline void FrameBase::setV(const StateBlockPtr _v_ptr)
{
addStateBlock("V", _v_ptr);
}
inline TrajectoryBasePtr FrameBase::getTrajectory() const
{
return trajectory_ptr_.lock();
@@ -217,6 +214,17 @@ inline const FactorBasePtrList& FrameBase::getConstrainedByList() const
return constrained_by_list_;
}
inline StateBlockPtr FrameBase::addStateBlock(const std::string& _sb_type,
const StateBlockPtr& _sb)
{
if (isKeyOrAux())
HasStateBlocks::addStateBlock(_sb_type, _sb, getProblem());
else
HasStateBlocks::addStateBlock(_sb_type, _sb, nullptr);
return _sb;
}
inline void FrameBase::setTrajectory(TrajectoryBasePtr _trj_ptr)
{
trajectory_ptr_ = _trj_ptr;
Loading