9 #ifndef IMPCORE_RIGID_BODY_TUNNELER_H
10 #define IMPCORE_RIGID_BODY_TUNNELER_H
12 #include <IMP/core/core_config.h>
19 #include <IMP/algebra/eigen3/Eigen/Dense>
20 #include <IMP/algebra/eigen3/Eigen/Geometry>
22 IMPCORE_BEGIN_NAMESPACE
49 IMP_Eigen::Vector3d pt;
51 entries_.push_back(pt);
68 virtual
void do_reject() IMP_OVERRIDE;
78 IMP_Eigen::Vector3d centroid_;
79 IMP_Eigen::Matrix3d base_;
80 IMP_Eigen::Quaterniond q_;
81 IMP_Eigen::Vector3d t_;
87 IMP_Eigen::Vector3d
get_centroid()
const {
return centroid_; }
88 IMP_Eigen::Matrix3d get_base()
const {
return base_; }
89 IMP_Eigen::Quaterniond get_rotation()
const {
return q_; }
91 IMP_Eigen::Vector3d get_local_coords(
const IMP_Eigen::Vector3d
93 IMP_Eigen::Quaterniond get_local_rotation(
const IMP_Eigen::Quaterniond
97 IMP_Eigen::Vector3d compute_centroid()
const;
98 IMP_Eigen::Matrix3d compute_base()
const;
99 IMP_Eigen::Quaterniond compute_quaternion()
const;
100 IMP_Eigen::Quaterniond pick_positive(
const IMP_Eigen::Quaterniond& q)
const;
108 IMP_Eigen::Vector3d t_;
115 : m_(m), ref_(ref), target_(other), t_(t), moved_(true) {
119 Translater() : moved_(false) {}
120 void undo_translate();
127 double move_probability_;
128 Translater last_translation_;
129 std::vector<IMP_Eigen::Vector3d> entries_;
134 IMPCORE_END_NAMESPACE
Simple Monte Carlo optimizer.
A base class for classes which perturb particles.
functionality for defining rigid bodies
The base class for movers for MC optimization.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Vector3D get_centroid(const Vector3Ds &ps)
Returns the centroid of a set of vectors.
base::Index< ParticleIndexTag > ParticleIndex
Modify the transformation of a rigid body.
virtual ModelObjectsTemp do_get_inputs() const =0
void add_entry_point(double x, double y, double z)
add entry point in cartesian space
Class for storing model, its restraints, constraints, and particles.