namespace match

Overview

namespace match {
 
// global functions
 
bool matchPrism(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<std::vector<int>>& nList, const Eigen::MatrixXd& refPoints, std::vector<int>& basal1, std::vector<int>& basal2, std::vector<double>& rmsdPerAtom, bool isPerfect = true);
bool matchUntetheredPrism(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<std::vector<int>>& nList, const Eigen::MatrixXd& refPoints, std::vector<int>& basal1, std::vector<int>& basal2, std::vector<double>& rmsdPerAtom);
bool matchPrismBlock(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<std::vector<int>>& nList, const Eigen::MatrixXd& refPoints, std::vector<int>& basal1, std::vector<int>& basal2, int& beginIndex);
int updatePerAtomRMSDRing(const std::vector<int>& basalRing, int startingIndex, const std::vector<double>& rmsdFromMatch, std::vector<double>& rmsdPerAtom);
int updateRMSDRing(const std::vector<int>& basalRing, int startingIndex, double rmsdVal, std::vector<double>& rmsdPerAtom);
 
} // namespace match

Detailed Documentation

Global Functions

bool matchPrism(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<std::vector<int>>& nList, const Eigen::MatrixXd& refPoints, std::vector<int>& basal1, std::vector<int>& basal2, std::vector<double>& rmsdPerAtom, bool isPerfect = true)

Shape-matching for a pair of polygon basal rings.

Returns true if the pair of basal rings form a prism block.

bool matchUntetheredPrism(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<std::vector<int>>& nList, const Eigen::MatrixXd& refPoints, std::vector<int>& basal1, std::vector<int>& basal2, std::vector<double>& rmsdPerAtom)

Shape-matching for a pair of polygon basal rings.

Returns true if the pair of basal rings form a prism block.

bool matchPrismBlock(const molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<std::vector<int>>& nList, const Eigen::MatrixXd& refPoints, std::vector<int>& basal1, std::vector<int>& basal2, int& beginIndex)

Shape-matching for a pair of polygon basal rings, comparing with a complete prism block.

Returns true if the pair of basal rings form a prism block.

int updatePerAtomRMSDRing(const std::vector<int>& basalRing, int startingIndex, const std::vector<double>& rmsdFromMatch, std::vector<double>& rmsdPerAtom)

Update the per-particle RMSD for a prism block basal ring.

int updateRMSDRing(const std::vector<int>& basalRing, int startingIndex, double rmsdVal, std::vector<double>& rmsdPerAtom)

Update the RMSD of each particle in a prism block basal ring with the RMSD of the ring.