diff --git a/gtsam_unstable/nonlinear/LinearContainerFactor.cpp b/gtsam_unstable/nonlinear/LinearContainerFactor.cpp index e6c49b318..b5701fb13 100644 --- a/gtsam_unstable/nonlinear/LinearContainerFactor.cpp +++ b/gtsam_unstable/nonlinear/LinearContainerFactor.cpp @@ -38,6 +38,15 @@ void LinearContainerFactor::initializeLinearizationPoint(const Values& lineariza } } +/* ************************************************************************* */ +LinearContainerFactor::LinearContainerFactor(const GaussianFactor::shared_ptr& factor, + const boost::optional& linearizationPoint) +: factor_(factor), linearizationPoint_(linearizationPoint) { + // Extract keys stashed in linear factor + BOOST_FOREACH(const Index& idx, factor_->keys()) + keys_.push_back(idx); +} + /* ************************************************************************* */ LinearContainerFactor::LinearContainerFactor( const JacobianFactor& factor, const Ordering& ordering, diff --git a/gtsam_unstable/nonlinear/LinearContainerFactor.h b/gtsam_unstable/nonlinear/LinearContainerFactor.h index a8f7cd399..324556622 100644 --- a/gtsam_unstable/nonlinear/LinearContainerFactor.h +++ b/gtsam_unstable/nonlinear/LinearContainerFactor.h @@ -25,8 +25,7 @@ protected: /** direct copy constructor */ LinearContainerFactor(const GaussianFactor::shared_ptr& factor, - const boost::optional& linearizationPoint) - : factor_(factor), linearizationPoint_(linearizationPoint) {} + const boost::optional& linearizationPoint); public: