15#ifndef SEAMS_FRANZBLAU_H_
16#define SEAMS_FRANZBLAU_H_
110 std::vector<std::vector<int>>
118std::vector<std::vector<int>>
ringNetwork(
const std::vector<std::vector<int>> &nList,
126 const std::vector<std::vector<int>> &neighHbondList);
137 const std::vector<std::vector<int>> &nList);
147[[nodiscard]]
int findRings(
Graph &fullGraph,
int v, std::vector<int> &visited,
int maxDepth,
148 int depth,
int root = -1);
152 std::vector<int> &visited,
int maxDepth,
int depth = 1);
180 const std::vector<std::vector<
int>> &
181 update(const std::vector<std::vector<
int>> &nList);
192 std::unique_ptr<Impl> impl_;
File for cage types for topological network criteria.
int lastRecomputedSources() const
Graph populateGraphFromNListID(molSys::PointCloud< molSys::Point< double >, double > &yCloud, const std::vector< std::vector< int > > &neighHbondList)
int findRings(Graph &fullGraph, int v, std::vector< int > &visited, int maxDepth, int depth, int root=-1)
Main function that searches for all rings.
void restoreEdgesFromIndices(Graph &fullGraph, const std::vector< std::vector< int > > &nList)
Graph populateGraphFromIndices(const std::vector< std::vector< int > > &nList)
void removeNonSPrings(Graph &fullGraph)
Removes the non-SP rings, using the Franzblau shortest path criterion.
RingUpdater(RingUpdater &&) noexcept
int shortestPath(Graph &fullGraph, int v, int goal, std::vector< int > &path, std::vector< int > &visited, int maxDepth, int depth=1)
Calculates the shortest path.
RingUpdater(int maxDepth)
std::vector< std::vector< int > > ringNetwork(const std::vector< std::vector< int > > &nList, int maxDepth)
const std::vector< std::vector< int > > & update(const std::vector< std::vector< int > > &nList)
std::vector< int > neighListIndex
This is the index according to pointCloud.
std::vector< std::vector< int > > rings
Graph countAllRingsFromIndex(const std::vector< std::vector< int > > &neighHbondList, int maxDepth)
Creates a vector of vectors of all possible rings.
int lastBallsRefreshed() const
Vertices whose bounded balls were rebuilt on the last update.
Graph clearGraph(Graph ¤tGraph)
Function for clearing vectors in Graph after multiple usage.
std::vector< Vertex > pts
The main molecular system handler.
Functions for generating primitive rings.
This contains a collection of points; contains information for a particular frame.
This contains per-particle information.
This is a per-frame object, containing all the vertices for the particular frame, along with the vect...
This is a collection of elements, for each point, required for graph traversal.