BALL  1.5.0
rotateBond.h
Go to the documentation of this file.
1 // ----------------------------------------------------
2 // $Maintainer: Marcel Schumann $
3 // $Authors: Jan Fuhrmann, Marcel Schumann $
4 // ----------------------------------------------------
5 
6 #ifndef BALL_DOCKING_GENETICDOCK_ROTATE_BOND_H
7 #define BALL_DOCKING_GENETICDOCK_ROTATE_BOND_H
8 
10 #include <BALL/MATHS/angle.h>
11 #include <BALL/MATHS/matrix44.h>
12 
13 // This class changes the rotation angle(radians) around a defined axis, furthermore it is possible to select
14 // 2 additional atoms to calculate and change the dihedral angle. The rotation axis must not be contained in a
15 // ring system. If this condition holds true, the molecule is divided by the rotation axis. All atoms of the
16 // lighter part rotate while the larger part of the molecule remains unchanged.
17 
18 
19 namespace BALL
20 {
21  class Atom;
22 
23  class Bond;
24 
26  {
27  public:
28 
32 
36 
39  RotateBond(const Bond&);
40 
44 
47  RotateBond(const Bond&, Atom*, Atom*);
48 
52 
56 
59  void rotate(const Angle&, bool restorePosition = true);
60 
63  void setDihedral(const Angle&);
64 
68 
71  bool operator<(const RotateBond& rb);
72 
73  private:
74 
77  Atom* hinge_;
78 
81  Atom* nail_;
82 
85  Atom* dihedral_lite_;
86 
89  Atom* dihedral_heavy_;
90 
93  HashSet<Atom*> rotate_atoms_;
94 
97  void collectAtoms(Atom*, Atom*, Atom*, HashSet<Atom*>&);
98 
101  void setup(Atom*, Atom*, Atom*, Atom*);
102  };
103 }
104 
105 
106 #endif /* BALL_DOCKING_GENETICDOCK_ROTATE_BOND_H */
BALL_EXPORT
#define BALL_EXPORT
Definition: COMMON/global.h:50
BALL::TAngle< float >
BALL::RotateBond::RotateBond
RotateBond(const Bond &, Atom *, Atom *)
BALL::Bond
Definition: bond.h:57
angle.h
BALL::RotateBond::RotateBond
RotateBond(const RotateBond &)
BALL::RotateBond::setDihedral
void setDihedral(const Angle &)
BALL::Atom
Definition: atom.h:90
BALL::RotateBond::getDihedral
Angle getDihedral()
BALL
Definition: constants.h:13
BALL::HashSet
Definition: hashSet.h:46
BALL::PDB::Atom
char Atom[5]
Definition: PDBdefs.h:257
hashSet.h
BALL::RotateBond::RotateBond
RotateBond(Atom *, Atom *)
BALL::RotateBond::RotateBond
RotateBond()
BALL::RotateBond
Definition: rotateBond.h:26
BALL::RotateBond::~RotateBond
~RotateBond()
BALL::RotateBond::RotateBond
RotateBond(Atom *, Atom *, Atom *, Atom *)
matrix44.h
BALL::RotateBond::RotateBond
RotateBond(const Bond &)
BALL_DEPRECATED
#define BALL_DEPRECATED
Definition: COMMON/global.h:64
BALL::RotateBond::rotate
void rotate(const Angle &, bool restorePosition=true)
BALL::RotateBond::operator<
bool operator<(const RotateBond &rb)