mirror of
https://github.com/ceres-solver/ceres-solver.git
synced 2026-08-29 08:34:37 +08:00
c8658c8992
Apply clang-tidy Google and modernize fixes without trailing return type
using:
$ clang-tidy -p <build-dir> \
-checks='-*,google-*,modernize-*,-modernize-use-trailing-return-type' {} -fix
Change-Id: I7450cc58ea9abf928f73a467e87876083217fa26
61 lines
1.8 KiB
C++
61 lines
1.8 KiB
C++
#include "ceres/internal/export.h"
|
|
#include "ceres/local_parameterization.h"
|
|
#include "ceres/manifold.h"
|
|
#include "glog/logging.h"
|
|
|
|
namespace ceres {
|
|
namespace internal {
|
|
|
|
// Adapter to wrap LocalParameterization and make them look like Manifolds.
|
|
//
|
|
// ManifoldAdapter NEVER takes ownership of local_parameterization.
|
|
class CERES_NO_EXPORT ManifoldAdapter final : public Manifold {
|
|
public:
|
|
explicit ManifoldAdapter(const LocalParameterization* local_parameterization)
|
|
: local_parameterization_(local_parameterization) {
|
|
CHECK(local_parameterization != nullptr);
|
|
}
|
|
|
|
bool Plus(const double* x,
|
|
const double* delta,
|
|
double* x_plus_delta) const override {
|
|
return local_parameterization_->Plus(x, delta, x_plus_delta);
|
|
}
|
|
|
|
bool PlusJacobian(const double* x, double* jacobian) const override {
|
|
return local_parameterization_->ComputeJacobian(x, jacobian);
|
|
}
|
|
|
|
bool RightMultiplyByPlusJacobian(const double* x,
|
|
const int num_rows,
|
|
const double* ambient_matrix,
|
|
double* tangent_matrix) const override {
|
|
return local_parameterization_->MultiplyByJacobian(
|
|
x, num_rows, ambient_matrix, tangent_matrix);
|
|
}
|
|
|
|
bool Minus(const double* y, const double* x, double* delta) const override {
|
|
LOG(FATAL) << "This should never be called.";
|
|
return false;
|
|
}
|
|
|
|
bool MinusJacobian(const double* x, double* jacobian) const override {
|
|
LOG(FATAL) << "This should never be called.";
|
|
return false;
|
|
}
|
|
|
|
int AmbientSize() const override {
|
|
return local_parameterization_->GlobalSize();
|
|
}
|
|
|
|
int TangentSize() const override {
|
|
return local_parameterization_->LocalSize();
|
|
}
|
|
|
|
private:
|
|
const LocalParameterization* local_parameterization_;
|
|
};
|
|
|
|
} // namespace internal
|
|
} // namespace ceres
|