diff --git a/include/ceres/autodiff_cost_function.h b/include/ceres/autodiff_cost_function.h index 207f0a416..993daf159 100644 --- a/include/ceres/autodiff_cost_function.h +++ b/include/ceres/autodiff_cost_function.h @@ -215,6 +215,8 @@ class AutoDiffCostFunction : public SizedCostFunction { jacobians); }; + const CostFunctor & functor() const { return *functor_; } + private: std::unique_ptr functor_; Ownership ownership_; diff --git a/include/ceres/autodiff_first_order_function.h b/include/ceres/autodiff_first_order_function.h index b98d84565..d0280b045 100644 --- a/include/ceres/autodiff_first_order_function.h +++ b/include/ceres/autodiff_first_order_function.h @@ -142,6 +142,8 @@ class AutoDiffFirstOrderFunction : public FirstOrderFunction { int NumParameters() const override { return kNumParameters; } + const FirstOrderFunctor & functor() const { return *functor_; } + private: std::unique_ptr functor_; }; diff --git a/include/ceres/autodiff_local_parameterization.h b/include/ceres/autodiff_local_parameterization.h index d694376fd..4ca4a501b 100644 --- a/include/ceres/autodiff_local_parameterization.h +++ b/include/ceres/autodiff_local_parameterization.h @@ -143,6 +143,8 @@ class AutoDiffLocalParameterization : public LocalParameterization { int GlobalSize() const override { return kGlobalSize; } int LocalSize() const override { return kLocalSize; } + const Functor & functor() const { return *functor_; } + private: std::unique_ptr functor_; }; diff --git a/include/ceres/autodiff_manifold.h b/include/ceres/autodiff_manifold.h index 8a7601f02..96735335c 100644 --- a/include/ceres/autodiff_manifold.h +++ b/include/ceres/autodiff_manifold.h @@ -173,6 +173,8 @@ class AutoDiffManifold : public Manifold { bool MinusJacobian(const double* x, double* jacobian) const override; + const Functor & functor() const { return *functor_; } + private: std::unique_ptr functor_; }; diff --git a/include/ceres/numeric_diff_cost_function.h b/include/ceres/numeric_diff_cost_function.h index cf7971cde..43fe768a4 100644 --- a/include/ceres/numeric_diff_cost_function.h +++ b/include/ceres/numeric_diff_cost_function.h @@ -246,6 +246,8 @@ class NumericDiffCostFunction : public SizedCostFunction { return true; } + const CostFunctor & functor() const { return *functor_; } + private: std::unique_ptr functor_; Ownership ownership_; diff --git a/include/ceres/numeric_diff_first_order_function.h b/include/ceres/numeric_diff_first_order_function.h index 866383549..cd24c969c 100644 --- a/include/ceres/numeric_diff_first_order_function.h +++ b/include/ceres/numeric_diff_first_order_function.h @@ -151,6 +151,8 @@ class NumericDiffFirstOrderFunction : public FirstOrderFunction { int NumParameters() const override { return kNumParameters; } + const FirstOrderFunctor & functor() const { return *functor_; } + private: std::unique_ptr functor_; Ownership ownership_;