Loading...
Searching...
No Matches
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
38namespace pntToPnt {
39
42Eigen::MatrixXd getPointSetRefRing(int n, int axialDim);
43
47Eigen::MatrixXd
49 const Eigen::MatrixXd &refPoints, int ringSize,
50 std::vector<int> basal1, std::vector<int> basal2);
51
54double
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,
72 std::vector<std::vector<int>> nList, std::vector<int> *outBasal1,
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
86Eigen::MatrixXd
88 std::vector<int> basalRing, int startingIndex);
89
92Eigen::MatrixXd fillPointSetPrismBlock(
94 std::vector<int> basal1, std::vector<int> basal2, int startingIndex);
95
99Eigen::MatrixXd getPointSetCage(ring::strucType type);
100
103 std::vector<int> basal1, std::vector<int> basal2,
104 std::vector<std::vector<int>> nList,
105 std::vector<int> *matchedBasal1,
106 std::vector<int> *matchedBasal2);
107
109std::vector<int> relOrderDDC(int index, std::vector<std::vector<int>> rings,
110 std::vector<cage::Cage> cageList);
111
115Eigen::MatrixXd
117 std::vector<int> basal1, std::vector<int> basal2,
118 int startingIndex = 0);
119
122Eigen::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)
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.
Eigen::MatrixXd fillPointSetPrismRing(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< int > basalRing, int startingIndex)
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)
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)
Eigen::MatrixXd changeHexCageOrder(molSys::PointCloud< molSys::Point< double >, double > *yCloud, std::vector< int > basal1, std::vector< int > basal2, int startingIndex=0)
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)
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.
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