5 #ifndef BALL_STRUCTURE_RESIDUEROTAMERSET_H
6 #define BALL_STRUCTURE_RESIDUEROTAMERSET_H
12 #ifndef BALL_MATHS_ANGLE_H
16 #ifndef BALL_DATATYPE_STRING_H
20 #ifndef BALL_MATHS_VECTOR3_H
28 template <
typename Key>
class HashSet;
29 template <
typename Key>
class StringHashMap;
55 Rotamer(
float new_P,
float new_chi1,
float new_chi2 = 0.0,
56 float new_chi3 = 0.0,
float new_chi4 = 0.0);
118 ResidueRotamerSet(const ResidueRotamerSet& rotamer_set);
122 ResidueRotamerSet(const
Residue& residue,
Size number_of_torsions);
126 virtual ~ResidueRotamerSet();
138 return rotamers_.
begin();
145 return rotamers_.end();
152 return rotamers_.begin();
159 return rotamers_.end();
177 bool isValid()
const;
180 Size getNumberOfRotamers()
const;
185 Size getNumberOfTorsions()
const;
196 bool hasTorsionPhi()
const;
199 Angle getTorsionPhi()
const;
202 void setTorsionPhi(
const Angle& phi);
205 bool hasTorsionPsi()
const;
208 Angle getTorsionPsi()
const;
211 void setTorsionPsi(
const Angle& psi);
218 bool setTemplateResidue(
const Residue& residue,
Size number_of_torsions);
238 void setName(
const String& name);
241 void addRotamer(
const Rotamer& rotamer);
244 void deleteRotamer(Iterator loc);
247 void deleteRotamers(Iterator begin, Iterator end);
259 : std::binary_function<Rotamer, Rotamer, bool>
272 void addMovable_(std::vector<String>& movable,
const Atom& a,
const HashSet<String>& assigned_atoms);
275 void setTorsionAngle_(
Residue& residue,
const std::vector<String>& movable,
float torsion);
313 #endif // BALL_STRUCTURE_RESIDUEROTAMERSET_H