pntCorrespondence.hpp
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------------
2 // d-SEAMS - Deferred Structural Elucidation Analysis for Molecular Simulations
3 //
4 // Copyright (c) 2018--present d-SEAMS core team
5 //
6 // This program is free software: you can redistribute it and/or modify
7 // it under the terms of the MIT License as published by
8 // the Open Source Initiative.
9 //
10 // A copy of the MIT License is included in the LICENSE file of this repository.
11 // You should have received a copy of the MIT License along with this program.
12 // If not, see <https://opensource.org/licenses/MIT>.
13 //-----------------------------------------------------------------------------------
14 
15 #ifndef __PNTCORRESPONDENCE_H_
16 #define __PNTCORRESPONDENCE_H_
17 
18 #include <algorithm>
19 #include <array>
20 #include <fstream>
21 #include <iostream>
22 #include <iterator>
23 #include <math.h>
24 #include <memory>
25 #include <sstream>
26 #include <string>
27 #include <sys/stat.h>
28 #include <vector>
29 
30 // External
31 #include <Eigen/Core>
32 
33 #include <cage.hpp>
34 #include <mol_sys.hpp>
35 #include <seams_input.hpp>
36 #include <seams_output.hpp>
37 
38 namespace pntToPnt {
39 
42 Eigen::MatrixXd getPointSetRefRing(int n, int axialDim);
43 
47 Eigen::MatrixXd
49  const Eigen::MatrixXd &refPoints, int ringSize,
50  std::vector<int> basal1, std::vector<int> basal2);
51 
54 double
56  std::vector<int> basal1, std::vector<int> basal2);
57 
62  std::vector<int> basal1, std::vector<int> basal2);
63 
71  std::vector<int> basal1, std::vector<int> basal2,
73  std::vector<int> *outBasal2);
74 
81  std::vector<int> basal1, std::vector<int> basal2,
82  std::vector<int> *outBasal1, std::vector<int> *outBasal2);
83 
86 Eigen::MatrixXd
88  std::vector<int> basalRing, int startingIndex);
89 
92 Eigen::MatrixXd fillPointSetPrismBlock(
94  std::vector<int> basal1, std::vector<int> basal2, int startingIndex);
95 
99 Eigen::MatrixXd getPointSetCage(ring::strucType type);
100 
103  std::vector<int> basal1, std::vector<int> basal2,
105  std::vector<int> *matchedBasal1,
106  std::vector<int> *matchedBasal2);
107 
110  std::vector<cage::Cage> cageList);
111 
115 Eigen::MatrixXd
117  std::vector<int> basal1, std::vector<int> basal2,
118  int startingIndex = 0);
119 
122 Eigen::MatrixXd
124  std::vector<int> ddcOrder, int startingIndex = 0);
125 
126 } // namespace pntToPnt
127 
128 #endif // __PNTCORRESPONDENCE_H_
File for cage types for topological network criteria.
strucType
Definition: ring.hpp:116
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:170
This contains per-particle information.
Definition: mol_sys.hpp:149