10 #include <aliceVision/camera/cameraCommon.hpp>
12 #include <aliceVision/numeric/numeric.hpp>
28 virtual EDISTORTION getType()
const = 0;
33 bool operator==(
const Distortion& other)
const {
return _distortionParams == other._distortionParams; }
35 void setParameters(
const std::vector<double>& params)
37 if (_distortionParams.size() != params.size())
42 for (std::size_t i = 0; i < _distortionParams.size(); i++)
44 _distortionParams[i] = params[i];
48 inline std::vector<double>& getParameters() {
return _distortionParams; }
50 inline const std::vector<double>& getParameters()
const {
return _distortionParams; }
52 inline std::size_t getDistortionParametersCount()
const {
return _distortionParams.size(); }
60 virtual double getUndistortedRadius(
double r)
const {
return r; }
62 virtual Eigen::Matrix2d getDerivativeAddDistoWrtPt([[maybe_unused]]
const Vec2& p)
const {
return Eigen::Matrix2d::Identity(); }
64 virtual Eigen::MatrixXd getDerivativeAddDistoWrtDisto([[maybe_unused]]
const Vec2& p)
const {
return Eigen::MatrixXd(0, 0); }
66 virtual Eigen::Matrix2d getDerivativeRemoveDistoWrtPt([[maybe_unused]]
const Vec2& p)
const {
return Eigen::Matrix2d::Identity(); }
68 virtual Eigen::MatrixXd getDerivativeRemoveDistoWrtDisto([[maybe_unused]]
const Vec2& p)
const {
return Eigen::MatrixXd(0, 0); }
70 inline void setLocked(
bool lock) { _isLocked = lock; }
72 inline bool isLocked()
const {
return _isLocked; }
74 virtual ~Distortion() =
default;
77 std::vector<double> _distortionParams{};
78 bool _isLocked{
false};