00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef IMPCORE_BALL_MOVER_H
00010 #define IMPCORE_BALL_MOVER_H
00011
00012 #include "core_config.h"
00013 #include "MonteCarlo.h"
00014 #include "MoverBase.h"
00015
00016 IMPCORE_BEGIN_NAMESPACE
00017
00018
00019
00020
00021
00022
00023 class IMPCOREEXPORT BallMover :public MoverBase
00024 {
00025 public:
00026
00027
00028
00029
00030
00031
00032 BallMover(SingletonContainer *sc, const FloatKeys &vars,
00033 Float radius);
00034
00035
00036
00037
00038
00039 BallMover(SingletonContainer *sc,
00040 Float radius);
00041 void set_radius(Float radius) {
00042 IMP_USAGE_CHECK(radius > 0, "The radius must be positive");
00043 radius_=radius;
00044 }
00045 Float get_radius() const {
00046 return radius_;
00047 }
00048 IMP_OBJECT(BallMover);
00049 protected:
00050 void generate_move(Float a);
00051
00052 private:
00053 Float radius_;
00054 };
00055
00056 IMPCORE_END_NAMESPACE
00057
00058 #endif