/usr/include/BALL/DOCKING/GENETICDOCK/rotateBond.h is in libball1.4-dev 1.4.3~beta1-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | // ----------------------------------------------------
// $Maintainer: Marcel Schumann $
// $Authors: Jan Fuhrmann, Marcel Schumann $
// ----------------------------------------------------
#ifndef BALL_DOCKING_GENETICDOCK_ROTATE_BOND_H
#define BALL_DOCKING_GENETICDOCK_ROTATE_BOND_H
#include <BALL/DATATYPE/hashSet.h>
#include <BALL/MATHS/angle.h>
#include <BALL/MATHS/matrix44.h>
// This class changes the rotation angle(radians) around a defined axis, furthermore it is possible to select
// 2 additional atoms to calculate and change the dihedral angle. The rotation axis must not be contained in a
// ring system. If this condition holds true, the molecule is divided by the rotation axis. All atoms of the
// lighter part rotate while the larger part of the molecule remains unchanged.
namespace BALL
{
class Atom;
class Bond;
class BALL_EXPORT RotateBond
{
public:
/** standard constructor
*/
RotateBond();
/** copy constructor
*/
RotateBond(const RotateBond&);
/** constructor using bond to define axis
*/
RotateBond(const Bond&);
/** define axis by atoms
*/
RotateBond(Atom*, Atom*);
/** define axis and 2 atoms for dihedral angle
*/
RotateBond(const Bond&, Atom*, Atom*);
/** define 2 axis and 2 dihedral atoms
*/
RotateBond(Atom*, Atom*, Atom*, Atom*);
/** destructor
*/
~RotateBond();
/** change dihedral angle
*/
void rotate(const Angle&, bool restorePosition = true);
/** set dihedral angle to new value
*/
void setDihedral(const Angle&);
/** get current dihedral angle
*/
Angle getDihedral();
/** smaller operator
*/
bool operator<(const RotateBond& rb);
private:
/** first atom of the rotation axis
*/
Atom* hinge_;
/** second atom of the rotation axis
*/
Atom* nail_;
/** defines dihedral angle
*/
Atom* dihedral_lite_;
/** defines dihedral angle
*/
Atom* dihedral_heavy_;
/** these atoms rotate
*/
HashSet<Atom*> rotate_atoms_;
/** collects atoms
*/
void collectAtoms(Atom*,
Atom*,
Atom*,
HashSet<Atom*>&);
/** used by constructors
*/
void setup(Atom*, Atom*, Atom*, Atom*);
};
}
#endif /* BALL_DOCKING_GENETICDOCK_ROTATE_BOND_H */
|