diff options
Diffstat (limited to 'intern/libmv/libmv/multiview/homography_parameterization.h')
-rw-r--r-- | intern/libmv/libmv/multiview/homography_parameterization.h | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/intern/libmv/libmv/multiview/homography_parameterization.h b/intern/libmv/libmv/multiview/homography_parameterization.h index ca8fbd8066e..ae2d74da9ff 100644 --- a/intern/libmv/libmv/multiview/homography_parameterization.h +++ b/intern/libmv/libmv/multiview/homography_parameterization.h @@ -25,64 +25,72 @@ namespace libmv { -/** A parameterization of the 2D homography matrix that uses 8 parameters so +/** A parameterization of the 2D homography matrix that uses 8 parameters so * that the matrix is normalized (H(2,2) == 1). * The homography matrix H is built from a list of 8 parameters (a, b,...g, h) * as follows - * |a b c| + * |a b c| * H = |d e f| - * |g h 1| + * |g h 1| */ -template<typename T = double> +template <typename T = double> class Homography2DNormalizedParameterization { public: typedef Eigen::Matrix<T, 8, 1> Parameters; // a, b, ... g, h typedef Eigen::Matrix<T, 3, 3> Parameterized; // H /// Convert from the 8 parameters to a H matrix. - static void To(const Parameters &p, Parameterized *h) { + static void To(const Parameters& p, Parameterized* h) { + // clang-format off *h << p(0), p(1), p(2), p(3), p(4), p(5), p(6), p(7), 1.0; + // clang-format on } /// Convert from a H matrix to the 8 parameters. - static void From(const Parameterized &h, Parameters *p) { + static void From(const Parameterized& h, Parameters* p) { + // clang-format off *p << h(0, 0), h(0, 1), h(0, 2), h(1, 0), h(1, 1), h(1, 2), h(2, 0), h(2, 1); + // clang-format on } }; -/** A parameterization of the 2D homography matrix that uses 15 parameters so +/** A parameterization of the 2D homography matrix that uses 15 parameters so * that the matrix is normalized (H(3,3) == 1). * The homography matrix H is built from a list of 15 parameters (a, b,...n, o) * as follows - * |a b c d| + * |a b c d| * H = |e f g h| * |i j k l| - * |m n o 1| + * |m n o 1| */ -template<typename T = double> +template <typename T = double> class Homography3DNormalizedParameterization { public: - typedef Eigen::Matrix<T, 15, 1> Parameters; // a, b, ... n, o - typedef Eigen::Matrix<T, 4, 4> Parameterized; // H + typedef Eigen::Matrix<T, 15, 1> Parameters; // a, b, ... n, o + typedef Eigen::Matrix<T, 4, 4> Parameterized; // H /// Convert from the 15 parameters to a H matrix. - static void To(const Parameters &p, Parameterized *h) { + static void To(const Parameters& p, Parameterized* h) { + // clang-format off *h << p(0), p(1), p(2), p(3), p(4), p(5), p(6), p(7), p(8), p(9), p(10), p(11), p(12), p(13), p(14), 1.0; + // clang-format on } /// Convert from a H matrix to the 15 parameters. - static void From(const Parameterized &h, Parameters *p) { + static void From(const Parameterized& h, Parameters* p) { + // clang-format off *p << h(0, 0), h(0, 1), h(0, 2), h(0, 3), h(1, 0), h(1, 1), h(1, 2), h(1, 3), h(2, 0), h(2, 1), h(2, 2), h(2, 3), h(3, 0), h(3, 1), h(3, 2); + // clang-format on } }; |