libatomprobe
Library for Atom Probe Tomography (APT) computation
rotations.h
Go to the documentation of this file.
1 /* spatial.h: Common spatial manipulation algorithms
2  * Copyright (C) 2015 Daniel Haley
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
16  */
17 #ifndef ATOMPROBE_SPATIAL_H
18 #define ATOMPROBE_SPATIAL_H
19 
21 
22 #include <gsl/gsl_matrix.h>
23 #include <vector>
24 
25 namespace AtomProbe
26 {
29 
32 void computeRotationMatrix(const Point3D &ur1, const Point3D &ur2,
33  const Point3D &r1, const Point3D &r2, gsl_matrix *m);
34 
36 
38 void computeRotationMatrix(const Point3D &ur1, const Point3D &ur2,
39  const Point3D &r1, const Point3D &r2, std::vector<std:: vector<float> > &m);
40 
42 
53 unsigned int computeRotationMatrixWahba(const std::vector<Point3D> &unrotated,const std::vector<Point3D> &rotated,
54  const std::vector<float> &weights,gsl_matrix* &R);
55 #ifdef DEBUG
56 
57 //Run internal unit tests for rotation algorithms
58 bool testRotationAlgorithms();
59 #endif
60 
61 }
62 #endif
63 
void computeRotationMatrix(const Point3D &ur1, const Point3D &ur2, const Point3D &r1, const Point3D &r2, gsl_matrix *m)
Definition: rotations.cpp:83
unsigned int computeRotationMatrixWahba(const std::vector< Point3D > &unrotated, const std::vector< Point3D > &rotated, const std::vector< float > &weights, gsl_matrix *&R)
Given a series of paired observations of directions, compute the least squares rotation matrix betwee...
Definition: rotations.cpp:147