libigl v2.5.0
Loading...
Searching...
No Matches
procrustes.h
Go to the documentation of this file.
1// This file is part of libigl, a simple c++ geometry processing library.
2//
3// Copyright (C) 2014 Stefan Brugger <stefanbrugger@gmail.com>
4//
5// This Source Code Form is subject to the terms of the Mozilla Public License
6// v. 2.0. If a copy of the MPL was not distributed with this file, You can
7// obtain one at http://mozilla.org/MPL/2.0/.
8#ifndef IGL_PROCRUSTES_H
9#define IGL_PROCRUSTES_H
10#include "igl_inline.h"
11
12#include <Eigen/Dense>
13#include <Eigen/Geometry>
14
15namespace igl
16{
45 template <
46 typename DerivedX,
47 typename DerivedY,
48 typename Scalar,
49 typename DerivedR,
50 typename DerivedT>
52 const Eigen::MatrixBase<DerivedX>& X,
53 const Eigen::MatrixBase<DerivedY>& Y,
54 const bool includeScaling,
55 const bool includeReflections,
56 Scalar& scale,
57 Eigen::PlainObjectBase<DerivedR>& R,
58 Eigen::PlainObjectBase<DerivedT>& t);
71 template <
72 typename DerivedX,
73 typename DerivedY,
74 typename Scalar,
75 int DIM,
76 int TType>
78 const Eigen::MatrixBase<DerivedX>& X,
79 const Eigen::MatrixBase<DerivedY>& Y,
80 const bool includeScaling,
81 const bool includeReflections,
82 Eigen::Transform<Scalar,DIM,TType>& T);
85 template <
86 typename DerivedX,
87 typename DerivedY,
88 typename DerivedR,
89 typename DerivedT>
91 const Eigen::MatrixBase<DerivedX>& X,
92 const Eigen::MatrixBase<DerivedY>& Y,
93 const bool includeScaling,
94 const bool includeReflections,
95 Eigen::PlainObjectBase<DerivedR>& S,
96 Eigen::PlainObjectBase<DerivedT>& t);
99 template <
100 typename DerivedX,
101 typename DerivedY,
102 typename DerivedR,
103 typename DerivedT>
105 const Eigen::MatrixBase<DerivedX>& X,
106 const Eigen::MatrixBase<DerivedY>& Y,
107 Eigen::PlainObjectBase<DerivedR>& R,
108 Eigen::PlainObjectBase<DerivedT>& t);
111 template <
112 typename DerivedX,
113 typename DerivedY,
114 typename Scalar,
115 typename DerivedT>
117 const Eigen::MatrixBase<DerivedX>& X,
118 const Eigen::MatrixBase<DerivedY>& Y,
119 Eigen::Rotation2D<Scalar>& R,
120 Eigen::PlainObjectBase<DerivedT>& t);
121}
122
123#ifndef IGL_STATIC_LIBRARY
124 #include "procrustes.cpp"
125#endif
126
127#endif
#define IGL_INLINE
Definition igl_inline.h:15
Definition AABB.h:17
void procrustes(const Eigen::MatrixBase< DerivedX > &X, const Eigen::MatrixBase< DerivedY > &Y, const bool includeScaling, const bool includeReflections, Scalar &scale, Eigen::PlainObjectBase< DerivedR > &R, Eigen::PlainObjectBase< DerivedT > &t)
Solve Procrustes problem in d dimensions.