IMP logo
IMP Reference Guide  2.22.0
The Integrative Modeling Platform
RigidBodyNewMover.h
Go to the documentation of this file.
1 /**
2  * \file IMP/spb/RigidBodyNewMover.h
3  * \brief A mover that transform a rigid body
4  *
5  * Copyright 2007-2022 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPSPB_RIGID_BODY_NEW_MOVER_H
10 #define IMPSPB_RIGID_BODY_NEW_MOVER_H
11 
12 #include <IMP/SingletonContainer.h>
14 #include <IMP/algebra/Vector3D.h>
15 #include <IMP/core/MonteCarlo.h>
17 #include <IMP/core/rigid_bodies.h>
18 #include <IMP/spb/spb_config.h>
19 
20 IMPSPB_BEGIN_NAMESPACE
21 
22 //! Modify the transformation of a rigid body
23 /** The transformation of a rigid body is moved in a ball of given
24  size. The probability distribution is uniform over the ball.
25  \see MonteCarlo
26  */
27 class IMPSPBEXPORT RigidBodyNewMover : public core::MonteCarloMover {
28  public:
29  /** The rigid body is rotated and translated to move
30  \param[in] d the rigid body decorator
31  \param[in] max_translation maximum translation during a step
32  \param[in] max_rotation maximum rotation angle in radians
33  */
34  RigidBodyNewMover(core::RigidBody d, Float max_x_translation,
35  Float max_y_translation, Float max_z_translation,
36  Float max_rot);
37  // IMP_MOVER(RigidBodyNewMover);
38 
39  protected:
40  virtual core::MonteCarloMoverResult do_propose() override;
41  virtual void do_reject() override;
42  virtual IMP::ModelObjectsTemp do_get_inputs() const override;
43 
46 
47  private:
48  algebra::Transformation3D last_transformation_;
49  Float max_x_translation_;
50  Float max_y_translation_;
51  Float max_z_translation_;
52  Float max_angle_;
53  core::RigidBody d_;
54 };
55 
56 IMPSPB_END_NAMESPACE
57 
58 #endif /* IMPSPB_RIGID_BODY_NEW_MOVER_H */
Simple 3D transformation class.
A container for Singletons.
Simple Monte Carlo optimizer.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
#define IMP_SHOWABLE(Name)
virtual void do_reject()=0
Implement reset_proposed_move()
Return value of the MonteCarloMover::propose() function.
A more IMP-like version of the std::vector.
Definition: Vector.h:50
Modify the transformation of a rigid body.
A base class for classes which perturb particles.
functionality for defining rigid bodies
The base class for movers for Monte Carlo optimization.
virtual MonteCarloMoverResult do_propose()=0
Implement propose_move()
Simple 3D transformation class.
double Float
Basic floating-point value (could be float, double...)
Definition: types.h:19
Simple 3D vector class.
A decorator for a rigid body.
Definition: rigid_bodies.h:82
virtual ModelObjectsTemp do_get_inputs() const =0