pntCorrespondence.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 __PNTCORRESPONDENCE_H_
12 #define __PNTCORRESPONDENCE_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 // External
27 #include <eigen3/Eigen/Core>
28 
29 #include <cage.hpp>
30 #include <mol_sys.hpp>
31 #include <seams_input.hpp>
32 #include <seams_output.hpp>
33 
34 namespace pntToPnt {
35 
38 Eigen::MatrixXd getPointSetRefRing(int n, int axialDim);
39 
43 Eigen::MatrixXd
45  const Eigen::MatrixXd &refPoints, int ringSize,
46  std::vector<int> basal1, std::vector<int> basal2);
47 
50 double
52  std::vector<int> basal1, std::vector<int> basal2);
53 
58  std::vector<int> basal1, std::vector<int> basal2);
59 
67  std::vector<int> basal1, std::vector<int> basal2,
69  std::vector<int> *outBasal2);
70 
77  std::vector<int> basal1, std::vector<int> basal2,
78  std::vector<int> *outBasal1, std::vector<int> *outBasal2);
79 
82 Eigen::MatrixXd
84  std::vector<int> basalRing, int startingIndex);
85 
88 Eigen::MatrixXd fillPointSetPrismBlock(
90  std::vector<int> basal1, std::vector<int> basal2, int startingIndex);
91 
95 Eigen::MatrixXd getPointSetCage(ring::strucType type);
96 
99  std::vector<int> basal1, std::vector<int> basal2,
101  std::vector<int> *matchedBasal1,
102  std::vector<int> *matchedBasal2);
103 
106  std::vector<cage::Cage> cageList);
107 
111 Eigen::MatrixXd
113  std::vector<int> basal1, std::vector<int> basal2,
114  int startingIndex = 0);
115 
118 Eigen::MatrixXd
120  std::vector<int> ddcOrder, int startingIndex = 0);
121 
122 } // namespace pntToPnt
123 
124 #endif // __PNTCORRESPONDENCE_H_
File for cage types for topological network criteria.
strucType
Definition: ring.hpp:112
The main molecular system handler.
Eigen::MatrixXd changeDiaCageOrder(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< int > ddcOrder, int startingIndex=0)
double getRadiusFromRings(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< int > basal1, std::vector< int > basal2)
Eigen::MatrixXd getPointSetCage(ring::strucType type)
Eigen::MatrixXd fillPointSetPrismRing(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< int > basalRing, int startingIndex)
Eigen::MatrixXd getPointSetRefRing(int n, int axialDim)
Eigen::MatrixXd createPrismBlock(molSys::PointCloud< molSys::Point< double >, double > *yCloud, const Eigen::MatrixXd &refPoints, int ringSize, std::vector< int > basal1, std::vector< int > basal2)
std::vector< int > relOrderDDC(int index, std::vector< std::vector< int >> rings, std::vector< cage::Cage > cageList)
Matches the order of the basal rings of an DDC or a potential HC.
int relOrderHC(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< int > basal1, std::vector< int > basal2, std::vector< std::vector< int >> nList, std::vector< int > *matchedBasal1, std::vector< int > *matchedBasal2)
Matches the order of the basal rings of an HC or a potential HC.
Eigen::MatrixXd changeHexCageOrder(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< int > basal1, std::vector< int > basal2, int startingIndex=0)
int relOrderPrismBlock(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< int > basal1, std::vector< int > basal2, std::vector< std::vector< int >> nList, std::vector< int > *outBasal1, std::vector< int > *outBasal2)
double getAvgHeightPrismBlock(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< int > basal1, std::vector< int > basal2)
Eigen::MatrixXd fillPointSetPrismBlock(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< int > basal1, std::vector< int > basal2, int startingIndex)
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