15#ifndef SEAMS_TOPO_ONE_DIM_H_
16#define SEAMS_TOPO_ONE_DIM_H_
51 const std::vector<std::vector<int>> &rings, std::vector<strucType> &ringType,
52 int &nPerfectPrisms,
int &nImperfectPrisms,
53 const std::vector<std::vector<int>> &nList,
55 std::vector<double> &rmsdPerAtom,
bool doShapeMatching =
false);
60 std::vector<int> &basal1, std::vector<int> &basal2);
65 std::vector<int> &basal1, std::vector<int> &basal2);
70 std::vector<int> &basal1, std::vector<int> &basal2,
75 const std::vector<std::vector<int>> &rings,
80[[nodiscard]]
int prismAnalysis(std::string path,
const std::vector<std::vector<int>> &rings,
81 const std::vector<std::vector<int>> &nList,
83 int maxDepth,
int &atomID,
int firstFrame,
int currentFrame,
84 bool doShapeMatching =
false);
89 const std::vector<int> &listPrism,
int ringSize,
90 const std::vector<ring::strucType> &ringType,
91 std::vector<int> &atomTypes,
92 std::vector<ring::strucType> &atomState);
96 std::vector<int> &atomTypes,
int maxDepth);
101 int firstFrame,
int currentFrame);
int prismAnalysis(std::string path, const std::vector< std::vector< int > > &rings, const std::vector< std::vector< int > > &nList, molSys::PointCloud< molSys::Point< double >, double > &yCloud, int maxDepth, int &atomID, int firstFrame, int currentFrame, bool doShapeMatching=false)
bool discardExtraTetragonBlocks(std::vector< int > &basal1, std::vector< int > &basal2, molSys::PointCloud< molSys::Point< double >, double > &yCloud)
int deformedPrismTypes(const std::vector< ring::strucType > &atomState, std::vector< int > &atomTypes, int maxDepth)
Get the atom type values for deformed prisms.
bool relaxedPrismConditions(const std::vector< std::vector< int > > &nList, std::vector< int > &basal1, std::vector< int > &basal2)
int rmAxialTranslations(molSys::PointCloud< molSys::Point< double >, double > &yCloud, int &atomID, int firstFrame, int currentFrame)
Shift the entire ice nanotube and remove axial translations.
int assignPrismType(const std::vector< std::vector< int > > &rings, const std::vector< int > &listPrism, int ringSize, const std::vector< ring::strucType > &ringType, std::vector< int > &atomTypes, std::vector< ring::strucType > &atomState)
std::vector< std::vector< int > > keepAxialRingsOnly(const std::vector< std::vector< int > > &rings, molSys::PointCloud< molSys::Point< double >, double > &yCloud)
Saves only axial rings out of all possible rings.
bool basalPrismConditions(const std::vector< std::vector< int > > &nList, std::vector< int > &basal1, std::vector< int > &basal2)
std::vector< int > findPrisms(const std::vector< std::vector< int > > &rings, std::vector< strucType > &ringType, int &nPerfectPrisms, int &nImperfectPrisms, const std::vector< std::vector< int > > &nList, molSys::PointCloud< molSys::Point< double >, double > &yCloud, std::vector< double > &rmsdPerAtom, bool doShapeMatching=false)
The main molecular system handler.
Topological network criteria functions.
File containing common functions used by bulk and confined topological network critera.
This contains a collection of points; contains information for a particular frame.
This contains per-particle information.