Go to the documentation of this file.00001
00029 #pragma once
00030
00031 #include <Eigen/Dense>
00032
00033 #include "SparseSystem.h"
00034 #include "Node.h"
00035
00036
00037 namespace isam {
00038
00044 class OptimizationInterface {
00045
00046 protected:
00047
00049 SparseSystem _R;
00050
00051 public:
00052 virtual SparseSystem jacobian() = 0;
00053 virtual void apply_exmap(const Eigen::VectorXd& delta) = 0;
00054 virtual void self_exmap(const Eigen::VectorXd& delta) = 0;
00055 virtual void estimate_to_linpoint() = 0;
00056 virtual void linpoint_to_estimate() = 0;
00057 virtual void swap_estimates() = 0;
00058 virtual Eigen::VectorXd weighted_errors(Selector s = ESTIMATE) = 0;
00059
00060 OptimizationInterface(): _R(1,1) {}
00061
00062 virtual ~OptimizationInterface() {}
00063
00064 friend class Optimizer;
00065 };
00066
00067 }