BALL 1.5.0
Loading...
Searching...
No Matches
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
19namespace BALL
20{
21 class Atom;
22
23 class Bond;
24
26 {
27 public:
28
32
36
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 */
char Atom[5]
Definition PDBdefs.h:257
RotateBond(const Bond &, Atom *, Atom *)
void rotate(const Angle &, bool restorePosition=true)
RotateBond(Atom *, Atom *)
bool operator<(const RotateBond &rb)
RotateBond(Atom *, Atom *, Atom *, Atom *)
void setDihedral(const Angle &)
RotateBond(const RotateBond &)
RotateBond(const Bond &)
#define BALL_DEPRECATED
#define BALL_EXPORT