5#ifndef SEAMS_CAGE_ENUM_H_
6#define SEAMS_CAGE_ENUM_H_
42 const std::vector<int> &faces);
55 const std::vector<int> &pattern);
64 const Signature &signature,
const std::vector<int> &species,
65 const std::vector<std::vector<int>> &patterns);
71 const std::vector<std::vector<int>> &nList,
81 const Signature &signature,
int minFaces);
94std::vector<std::array<double, 3>>
96 const std::vector<int> &vertices);
104 const std::vector<std::array<double, 3>> &cageXyz);
118std::vector<FormerRow>
120 const std::vector<std::vector<int>> &rings,
121 const std::vector<int> &species,
int formerSpecies);
126 const std::vector<FormerRow> &late);
File for cage types for topological network criteria.
Functions for topological network criteria cage types.
std::vector< FoundCage > findIncompleteBySignature(const std::vector< std::vector< int > > &rings, const Signature &signature, int minFaces)
Connected face sets that stay inside the signature budget, have at least minFaces faces,...
bool sameNetwork(const std::vector< FormerRow > &early, const std::vector< FormerRow > &late)
True when the two tables have the same per-atom species, coordination, homopolar count,...
bool isClosedPolyhedron(const std::vector< std::vector< int > > &rings, const std::vector< int > &faces)
True when every edge of the listed faces is used by exactly two of those faces.
CageShape shapeOfVertices(const std::vector< std::array< double, 3 > > &cageXyz)
Point group of this vertex set.
std::vector< std::array< double, 3 > > coordsOfVertices(const std::vector< std::array< double, 3 > > &all, const std::vector< int > &vertices)
Coordinates of vertices only.
std::vector< FoundCage > findBySignature(const std::vector< std::vector< int > > &rings, const Signature &signature)
Face-sharing rings whose size census equals signature and whose edges close.
bool speciesCycleMatches(const std::vector< int > &cycle, const std::vector< int > &pattern)
True when cycle is pattern rotated or reversed.
CageShape overlayVertices(const std::vector< std::array< double, 3 > > &ref, const std::vector< std::array< double, 3 > > &cageXyz)
Overlay cageXyz on ref.
std::vector< FormerRow > formerRows(const std::vector< std::vector< int > > &nList, const std::vector< std::vector< int > > &rings, const std::vector< int > &species, int formerSpecies)
formerSpecies < 0 keeps every atom.
IRA/SOFI result for one cage.
One cage matching a signature, closed or incomplete.
std::vector< int > faces
ring indices into the input vector
std::string certificate
nauty hex, empty when nauty is off
int danglingEdges
edges used once (cups / incomplete)
bool closed
every face edge used twice
std::vector< int > vertices
sorted unique atom indices
Ring-size census of a polyhedral cage: size -> number of faces.