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.