diff --git a/include/core/frame/frame_base.h b/include/core/frame/frame_base.h index 356664ebcb2e88b4a0e854df94559e38770b4e08..c40eb2d92ee2d29b0921ccf55728054aa78bdc8f 100644 --- a/include/core/frame/frame_base.h +++ b/include/core/frame/frame_base.h @@ -155,18 +155,19 @@ class FrameBase : public NodeBase, public std::enable_shared_from_this<FrameBase CaptureBasePtr addCapture(CaptureBasePtr _capt_ptr); void removeCapture(CaptureBasePtr _capt_ptr); void setTrajectory(TrajectoryBasePtr _trj_ptr); - public: - static FrameBasePtr create_PO_2D (const FrameType & _tp, - const TimeStamp& _ts, - const Eigen::VectorXs& _x = Eigen::VectorXs::Zero(3)); - static FrameBasePtr create_PO_3D (const FrameType & _tp, - const TimeStamp& _ts, - const Eigen::VectorXs& _x = Eigen::VectorXs::Zero(7)); - static FrameBasePtr create_POV_3D(const FrameType & _tp, - const TimeStamp& _ts, - const Eigen::VectorXs& _x = Eigen::VectorXs::Zero(10)); virtual FactorBasePtr addConstrainedBy(FactorBasePtr _fac_ptr); virtual void removeConstrainedBy(FactorBasePtr _fac_ptr); + +// public: +// static FrameBasePtr create_PO_2D (const FrameType & _tp, +// const TimeStamp& _ts, +// const Eigen::VectorXs& _x = Eigen::VectorXs::Zero(3)); +// static FrameBasePtr create_PO_3D (const FrameType & _tp, +// const TimeStamp& _ts, +// const Eigen::VectorXs& _x = Eigen::VectorXs::Zero(7)); +// static FrameBasePtr create_POV_3D(const FrameType & _tp, +// const TimeStamp& _ts, +// const Eigen::VectorXs& _x = Eigen::VectorXs::Zero(10)); }; } // namespace wolf diff --git a/src/frame/frame_base.cpp b/src/frame/frame_base.cpp index 0aa7712d3c3abead1fbf0d2df423e72c97ade501..a1ecb1b87cd4da5932174bb5737db0237d3c7112 100644 --- a/src/frame/frame_base.cpp +++ b/src/frame/frame_base.cpp @@ -386,42 +386,6 @@ void FrameBase::removeConstrainedBy(FactorBasePtr _fac_ptr) constrained_by_list_.remove(_fac_ptr); } -FrameBasePtr FrameBase::create_PO_2D(const FrameType & _tp, - const TimeStamp& _ts, - const Eigen::VectorXs& _x) -{ - assert(_x.size() == 3 && "Wrong state vector size. Should be 3 for 2D!"); - StateBlockPtr p_ptr ( std::make_shared<StateBlock> (_x.head <2> ( ) ) ); - StateBlockPtr o_ptr ( std::make_shared<StateAngle> ((Scalar) _x(2) ) ); - StateBlockPtr v_ptr ( nullptr ); - FrameBasePtr f ( std::make_shared<FrameBase>(_tp, _ts, p_ptr, o_ptr, v_ptr) ); - f->setType("PO 2D"); - return f; -} -FrameBasePtr FrameBase::create_PO_3D(const FrameType & _tp, - const TimeStamp& _ts, - const Eigen::VectorXs& _x) -{ - assert(_x.size() == 7 && "Wrong state vector size. Should be 7 for 3D!"); - StateBlockPtr p_ptr ( std::make_shared<StateBlock> (_x.head <3> ( ) ) ); - StateBlockPtr o_ptr ( std::make_shared<StateQuaternion> (_x.tail <4> ( ) ) ); - StateBlockPtr v_ptr ( nullptr ); - FrameBasePtr f ( std::make_shared<FrameBase>(_tp, _ts, p_ptr, o_ptr, v_ptr) ); - f->setType("PO 3D"); - return f; -} -FrameBasePtr FrameBase::create_POV_3D(const FrameType & _tp, - const TimeStamp& _ts, - const Eigen::VectorXs& _x) -{ - assert(_x.size() == 10 && "Wrong state vector size. Should be 10 for 3D!"); - StateBlockPtr p_ptr ( std::make_shared<StateBlock> (_x.head <3> ( ) ) ); - StateBlockPtr o_ptr ( std::make_shared<StateQuaternion> (_x.segment <4> (3) ) ); - StateBlockPtr v_ptr ( std::make_shared<StateBlock> (_x.tail <3> ( ) ) ); - FrameBasePtr f ( std::make_shared<FrameBase>(_tp, _ts, p_ptr, o_ptr, v_ptr) ); - f->setType("POV 3D"); - return f; -} void FrameBase::link(TrajectoryBasePtr _ptr) { if(_ptr) @@ -436,14 +400,8 @@ void FrameBase::link(TrajectoryBasePtr _ptr) WOLF_WARN("Linking with a nullptr"); } } -} // namespace wolf -#include "core/common/factory.h" -namespace wolf { -namespace{ const bool WOLF_UNUSED Frame_PO_2D_Registered = FrameFactory::get().registerCreator("PO 2D", FrameBase::create_PO_2D ); } -namespace{ const bool WOLF_UNUSED Frame_PO_3D_Registered = FrameFactory::get().registerCreator("PO 3D", FrameBase::create_PO_3D ); } -namespace{ const bool WOLF_UNUSED Frame_POV_3D_Registered = FrameFactory::get().registerCreator("POV 3D", FrameBase::create_POV_3D); } void FrameBase::setProblem(ProblemPtr _problem) { if (_problem == nullptr || _problem == this->getProblem()) @@ -456,4 +414,52 @@ void FrameBase::setProblem(ProblemPtr _problem) for (auto cap : capture_list_) cap->setProblem(_problem); } + +//FrameBasePtr FrameBase::create_PO_2D(const FrameType & _tp, +// const TimeStamp& _ts, +// const Eigen::VectorXs& _x) +//{ +// assert(_x.size() == 3 && "Wrong state vector size. Should be 3 for 2D!"); +// StateBlockPtr p_ptr ( std::make_shared<StateBlock> (_x.head <2> ( ) ) ); +// StateBlockPtr o_ptr ( std::make_shared<StateAngle> ((Scalar) _x(2) ) ); +// StateBlockPtr v_ptr ( nullptr ); +// FrameBasePtr f ( std::make_shared<FrameBase>(_tp, _ts, p_ptr, o_ptr, v_ptr) ); +// f->setType("PO 2D"); +// return f; +//} +// +//FrameBasePtr FrameBase::create_PO_3D(const FrameType & _tp, +// const TimeStamp& _ts, +// const Eigen::VectorXs& _x) +//{ +// assert(_x.size() == 7 && "Wrong state vector size. Should be 7 for 3D!"); +// StateBlockPtr p_ptr ( std::make_shared<StateBlock> (_x.head <3> ( ) ) ); +// StateBlockPtr o_ptr ( std::make_shared<StateQuaternion> (_x.tail <4> ( ) ) ); +// StateBlockPtr v_ptr ( nullptr ); +// FrameBasePtr f ( std::make_shared<FrameBase>(_tp, _ts, p_ptr, o_ptr, v_ptr) ); +// f->setType("PO 3D"); +// return f; +//} +// +//FrameBasePtr FrameBase::create_POV_3D(const FrameType & _tp, +// const TimeStamp& _ts, +// const Eigen::VectorXs& _x) +//{ +// assert(_x.size() == 10 && "Wrong state vector size. Should be 10 for 3D!"); +// StateBlockPtr p_ptr ( std::make_shared<StateBlock> (_x.head <3> ( ) ) ); +// StateBlockPtr o_ptr ( std::make_shared<StateQuaternion> (_x.segment <4> (3) ) ); +// StateBlockPtr v_ptr ( std::make_shared<StateBlock> (_x.tail <3> ( ) ) ); +// FrameBasePtr f ( std::make_shared<FrameBase>(_tp, _ts, p_ptr, o_ptr, v_ptr) ); +// f->setType("POV 3D"); +// return f; +//} + } // namespace wolf + +//#include "core/common/factory.h" +//namespace wolf +//{ +//namespace{ const bool WOLF_UNUSED Frame_PO_2D_Registered = FrameFactory::get().registerCreator("PO 2D", FrameBase::create_PO_2D ); } +//namespace{ const bool WOLF_UNUSED Frame_PO_3D_Registered = FrameFactory::get().registerCreator("PO 3D", FrameBase::create_PO_3D ); } +//namespace{ const bool WOLF_UNUSED Frame_POV_3D_Registered = FrameFactory::get().registerCreator("POV 3D", FrameBase::create_POV_3D); } +//} // namespace wolf