namespace pntToPnt

Overview

namespace pntToPnt {
 
// global functions
 
Eigen::MatrixXd getPointSetRefRing(int n, int axialDim);
Eigen::MatrixXd createPrismBlock(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const Eigen::MatrixXd& refPoints, int ringSize, const std::vector<int>& basal1, const std::vector<int>& basal2);
double getRadiusFromRings(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basal1, const std::vector<int>& basal2);
double getAvgHeightPrismBlock(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basal1, const std::vector<int>& basal2);
int relOrderPrismBlock(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basal1, const std::vector<int>& basal2, const std::vector<std::vector<int>>& nList, std::vector<int>& outBasal1, std::vector<int>& outBasal2);
int relOrderPrismBlock(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basal1, const std::vector<int>& basal2, std::vector<int>& outBasal1, std::vector<int>& outBasal2);
Eigen::MatrixXd fillPointSetPrismRing(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basalRing, int startingIndex);
Eigen::MatrixXd fillPointSetPrismBlock(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basal1, const std::vector<int>& basal2, int startingIndex);
Eigen::MatrixXd getPointSetCage(ring::strucType type);
int relOrderHC(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basal1, const std::vector<int>& basal2, const std::vector<std::vector<int>>& nList, std::vector<int>& matchedBasal1, std::vector<int>& matchedBasal2);
std::vector<int> relOrderDDC(int index, const std::vector<std::vector<int>>& rings, const std::vector<cage::Cage>& cageList);
std::vector<int> relOrderDDC(const std::vector<int>& equatorial, int index, const std::vector<std::vector<int>>& rings, const std::vector<cage::Cage>& cageList);
Eigen::MatrixXd changeHexCageOrder(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basal1, const std::vector<int>& basal2, int startingIndex = 0);
Eigen::MatrixXd changeDiaCageOrder(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& ddcOrder, int startingIndex = 0);
 
} // namespace pntToPnt

Detailed Documentation

Global Functions

Eigen::MatrixXd getPointSetRefRing(int n, int axialDim)

Fills up an eigen matrix point set a reference ring, which is a regular n-gonal polygon; where n is the number of nodes in the ring.

Eigen::MatrixXd createPrismBlock(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const Eigen::MatrixXd& refPoints, int ringSize, const std::vector<int>& basal1, const std::vector<int>& basal2)

Creates an eigen matrix for the points of a prism block, constructed from the points of a perfect polygon of radius 1, given the basal rings and axial dimension.

double getRadiusFromRings(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basal1, const std::vector<int>& basal2)

Calculate the average radial distance for the basal rings, calculated from the centroid of each basal ring.

double getAvgHeightPrismBlock(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basal1, const std::vector<int>& basal2)

Calculate the average height of the prism block, calculated using the basal rings of the prism and the axial dimension.

int relOrderPrismBlock(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basal1, const std::vector<int>& basal2, const std::vector<std::vector<int>>& nList, std::vector<int>& outBasal1, std::vector<int>& outBasal2)

Get the relative ordering of a pair of basal rings for a deformed prism/perfect prism.

Outputs a vector of vectors of indices, such that the first vector is for the first basal ring, and the second vector is for the second basal ring. The input neighbour list is with respect to indices, not IDs

int relOrderPrismBlock(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basal1, const std::vector<int>& basal2, std::vector<int>& outBasal1, std::vector<int>& outBasal2)

Get the relative ordering of a pair of basal rings for a deformed prism/perfect prism.

Outputs a vector of vectors of indices, such that the first vector is for the first basal ring, and the second vector is for the second basal ring.

Eigen::MatrixXd fillPointSetPrismRing(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basalRing, int startingIndex)

Fill up an Eigen Matrix of a prism basal ring from an input vector of atom indices.

Eigen::MatrixXd fillPointSetPrismBlock(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basal1, const std::vector<int>& basal2, int startingIndex)

Fill up an Eigen matrix of a prism block (two basal rings) from input vectors for the basal rings.

Eigen::MatrixXd getPointSetCage(ring::strucType type)

Fills up an eigen matrix point set a reference ring, which is a regular n-gonal polygon, constructed with radius 1 by default; where n is the number of nodes in the ring.

int relOrderHC(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basal1, const std::vector<int>& basal2, const 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.

std::vector<int> relOrderDDC(int index, const std::vector<std::vector<int>>& rings, const std::vector<cage::Cage>& cageList)

Matches the order of the basal rings of an DDC or a potential HC.

std::vector<int> relOrderDDC(const std::vector<int>& equatorial, int index, const std::vector<std::vector<int>>& rings, const std::vector<cage::Cage>& cageList)

As relOrderDDC, but deriving the connectivity from an explicit equatorial traversal instead of the stored ring row; passing the reversed traversal yields the mirror correspondence for the shape-matching search.

Eigen::MatrixXd changeHexCageOrder(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basal1, const std::vector<int>& basal2, int startingIndex = 0)

Fills up an eigen matrix point set using the basal rings basal1 and basal2, changing the order of the point set by filling up from the startingIndex (starting from 0 to 5)

Eigen::MatrixXd changeDiaCageOrder(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& ddcOrder, int startingIndex = 0)

Fills up an eigen matrix point set using information of the equatorial ring and peripheral rings, embedded in a vector, already filled in relOrderDDC.