15 #ifndef __ABSORIENTATION_H_
16 #define __ABSORIENTATION_H_
31 #include <Spectra/SymEigsShiftSolver.h>
32 #include <Spectra/SymEigsSolver.h>
34 #include <Eigen/Dense>
49 const Eigen::MatrixXd &targetPoints,
55 Eigen::MatrixXd
calcMatrixS(
const Eigen::MatrixXd ¢eredRefPnts,
56 const Eigen::MatrixXd ¢eredTargetPnts,
int nop,
61 Eigen::MatrixXd
calcMatrixN(
const Eigen::MatrixXd &S);
68 const Eigen::MatrixXd &leftSys,
int n);
74 double getRMSD(
const Eigen::MatrixXd ¢eredRefPnts,
75 const Eigen::MatrixXd ¢eredTargetPnts,
77 int nop,
double scale);
The main molecular system handler.
double getRMSD(const Eigen::MatrixXd ¢eredRefPnts, const Eigen::MatrixXd ¢eredTargetPnts, const Eigen::VectorXd &quat, std::vector< double > *rmsdList, int nop, double scale)
Calculate the RMSD.
Eigen::MatrixXd calcMatrixS(const Eigen::MatrixXd ¢eredRefPnts, const Eigen::MatrixXd ¢eredTargetPnts, int nop, int dim)
double calcScaleFactor(const Eigen::MatrixXd &rightSys, const Eigen::MatrixXd &leftSys, int n)
Calculate the scale factor from the centered left and right point sets.
Eigen::MatrixXd centerWRTcentroid(const Eigen::MatrixXd &pointSet)
Center a point set wrt the centroid.
int hornAbsOrientation(const Eigen::MatrixXd &refPoints, const Eigen::MatrixXd &targetPoints, std::vector< double > *quat, double *rmsd, std::vector< double > *rmsdList, double *scale)
Get the absolute orientation using Horn's algorithm (with quaternions)
Eigen::MatrixXd calcMatrixN(const Eigen::MatrixXd &S)
Eigen::MatrixXd quat2RotMatrix(const Eigen::VectorXd &quat)
Get a rotation matrix from a unit quaternion.
File containing common functions used by bulk and confined topological network critera.