shapeMatch.hpp
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------------
2 // d-SEAMS is free software: you can redistribute it and/or modify
3 // it under the terms of the GNU General Public License as published by
4 // the Free Software Foundation, either version 3 of the License, or
5 // (at your option) any later version.
6 //
7 // A copy of the GNU General Public License is available at
8 // http://www.gnu.org/licenses/
9 //-----------------------------------------------------------------------------------
10 
11 #ifndef __SHAPEMATCH_H_
12 #define __SHAPEMATCH_H_
13 
14 #include <algorithm>
15 #include <array>
16 #include <fstream>
17 #include <iostream>
18 #include <iterator>
19 #include <math.h>
20 #include <memory>
21 #include <sstream>
22 #include <string>
23 #include <sys/stat.h>
24 #include <vector>
25 
26 #include <absOrientation.hpp>
27 #include <mol_sys.hpp>
28 #include <pntCorrespondence.hpp>
29 #include <ring.hpp>
30 #include <seams_input.hpp>
31 #include <seams_output.hpp>
32 
33 namespace match {
34 
39  const Eigen::MatrixXd &refPoints, std::vector<int> *basal1,
40  std::vector<int> *basal2, std::vector<double> *rmsdPerAtom,
41  bool isPerfect = true);
42 
47  std::vector<std::vector<int>> nList, const Eigen::MatrixXd &refPoints,
48  std::vector<int> *basal1, std::vector<int> *basal2,
49  std::vector<double> *rmsdPerAtom);
50 
55  const Eigen::MatrixXd &refPoints, std::vector<int> *basal1,
56  std::vector<int> *basal2, int *beginIndex);
57 
59 int updatePerAtomRMSDRing(std::vector<int> basalRing, int startingIndex,
60  std::vector<double> rmsdFromMatch,
61  std::vector<double> *rmsdPerAtom);
62 
65 int updateRMSDRing(std::vector<int> basalRing, int startingIndex,
66  double rmsdVal, std::vector<double> *rmsdPerAtom);
67 
68 } // namespace match
69 
70 #endif // __SHAPEMATCH_H_
The main molecular system handler.
bool matchPrismBlock(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int >> nList, const Eigen::MatrixXd &refPoints, std::vector< int > *basal1, std::vector< int > *basal2, int *beginIndex)
Definition: shapeMatch.cpp:247
int updatePerAtomRMSDRing(std::vector< int > basalRing, int startingIndex, std::vector< double > rmsdFromMatch, std::vector< double > *rmsdPerAtom)
Update the per-particle RMSD for a prism block basal ring.
Definition: shapeMatch.cpp:182
bool matchUntetheredPrism(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int >> nList, const Eigen::MatrixXd &refPoints, std::vector< int > *basal1, std::vector< int > *basal2, std::vector< double > *rmsdPerAtom)
Definition: shapeMatch.cpp:106
int updateRMSDRing(std::vector< int > basalRing, int startingIndex, double rmsdVal, std::vector< double > *rmsdPerAtom)
Definition: shapeMatch.cpp:216
bool matchPrism(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< std::vector< int >> nList, const Eigen::MatrixXd &refPoints, std::vector< int > *basal1, std::vector< int > *basal2, std::vector< double > *rmsdPerAtom, bool isPerfect=true)
Definition: shapeMatch.cpp:17
File containing common functions used by bulk and confined topological network critera.
File for functions that read in files).
This contains a collection of points; contains information for a particular frame.
Definition: mol_sys.hpp:166
This contains per-particle information.
Definition: mol_sys.hpp:145