23 #ifndef OST_SUPERPOSITION_HH
24 #define OST_SUPERPOSITION_HH
32 namespace ost {
namespace mol {
44 : ncycles(0), rmsd(0.0), transformation() {
58 class MeanSquareMinimizerImpl;
66 const std::vector<geom::Vec3>& points_ref);
77 std::swap(rhs.
impl_, impl_);
88 bool apply_transform);
92 bool apply_transform);
102 Real distance_threshold,
103 bool apply_transform);
109 Real distance_threshold);
MeanSquareMinimizer(const MeanSquareMinimizer &rhs)
SuperpositionResult MinimizeOnce() const
MeanSquareMinimizer & operator=(const MeanSquareMinimizer &rhs)
SuperpositionResult IterativeMinimize(int ncycles=5, Real distance_threshold=2.0) const
static MeanSquareMinimizer FromPointLists(const std::vector< geom::Vec3 > &points, const std::vector< geom::Vec3 > &points_ref)
static MeanSquareMinimizer FromAtomLists(const mol::AtomViewList &atoms, const mol::AtomViewList &atoms_ref)
void swap(MeanSquareMinimizer &rhs)
MeanSquareMinimizerImpl * impl_
#define DLLEXPORT_OST_MOL_ALG
SuperpositionResult DLLEXPORT_OST_MOL_ALG SuperposeAtoms(const mol::AtomViewList &atoms1, const mol::AtomViewList &atoms2, bool apply_transform)
takes the corresponding atoms and superposes them
SuperpositionResult DLLEXPORT_OST_MOL_ALG SuperposeSVD(const mol::EntityView &ev1, const mol::EntityView &ev2, bool apply_transform)
superposes two entity views
Real DLLEXPORT_OST_MOL_ALG CalculateRMSD(const mol::EntityView &ev1, const mol::EntityView &ev2, const geom::Mat4 &transformation)
calculates RMSD for two entity view
SuperpositionResult DLLEXPORT_OST_MOL_ALG IterativeSuperposeSVD(const mol::EntityView &ev1, const mol::EntityView &ev2, int max_cycles, Real distance_threshold, bool apply_transform)
iterative superposition
std::vector< AtomView > AtomViewList
stores the number of cycles and the two final EntityViews (in case IterativeSuperposition was applied...
geom::Mat4 transformation
mol::EntityView entity_view1
mol::EntityView entity_view2
Real rmsd_superposed_atoms