editor for internal molecule coordinates More...
#include <ics_editor.hh>
Inherits ost::mol::EditorBase.
Public Member Functions | |
~ICSEditor () | |
ICSEditor (const ICSEditor &rhs) | |
ICSEditor & | operator= (const ICSEditor &rhs) |
void | SetBondLength (const BondHandle &bond, Real length) |
bool | SetAngle (const AtomHandle &atom_a, const AtomHandle &atom_b, const AtomHandle &atom_c, Real angle) |
void | SetTorsionAngle (TorsionHandle torsion, Real angle, bool update_others=true) |
void | RotateTorsionAngle (TorsionHandle torsion, Real delta, bool update_others=true) |
void | RotateTorsionAngle (const AtomHandle &atom_a, const AtomHandle &atom_b, const AtomHandle &atom_c, const AtomHandle &atom_d, Real angle, bool update_others=true) |
void | SetTorsionAngle (const AtomHandle &atom_a, const AtomHandle &atom_b, const AtomHandle &atom_c, const AtomHandle &atom_d, Real angle, bool update_others=true) |
void | UpdateXCS () |
Protected Member Functions | |
ICSEditor (const EntityHandle &ent, EditMode mode) | |
void | Update () |
Friends | |
class | EntityHandle |
editor for internal molecule coordinates
Definition at line 34 of file ics_editor.hh.
~ICSEditor | ( | ) |
ICSEditor | ( | const EntityHandle & | ent, | |
EditMode | mode | |||
) | [protected] |
void RotateTorsionAngle | ( | const AtomHandle & | atom_a, | |
const AtomHandle & | atom_b, | |||
const AtomHandle & | atom_c, | |||
const AtomHandle & | atom_d, | |||
Real | angle, | |||
bool | update_others = true | |||
) |
void RotateTorsionAngle | ( | TorsionHandle | torsion, | |
Real | delta, | |||
bool | update_others = true | |||
) |
rotate torsion angle
bool SetAngle | ( | const AtomHandle & | atom_a, | |
const AtomHandle & | atom_b, | |||
const AtomHandle & | atom_c, | |||
Real | angle | |||
) |
Set angle of vectors formed by a12 and a13 to the given value.
The angle is adjusted in such a way that the plane given by the 3 atom positions is kept invariant (the vectors are rotated around the plane normal).
Setting the angle requires the 3 atoms to be connected with bond. If they are not, the method will fail. The method is solely based on the internal coordinate system.
void SetBondLength | ( | const BondHandle & | bond, | |
Real | length | |||
) |
set the lengh of the bond, ie the distance of the second atom from the first
Calling BondHandle::SetLength will bring the external coordinate system out of sync. It will not be updated until EntityHandle::UpdateICS() is called.
void SetTorsionAngle | ( | const AtomHandle & | atom_a, | |
const AtomHandle & | atom_b, | |||
const AtomHandle & | atom_c, | |||
const AtomHandle & | atom_d, | |||
Real | angle, | |||
bool | update_others = true | |||
) |
void SetTorsionAngle | ( | TorsionHandle | torsion, | |
Real | angle, | |||
bool | update_others = true | |||
) |
set absolute torsion angle
All connectors at the third atom (A3) will be adjusted accordingly. If you only want to adjust the bond between A3 and A4, and leave the other bonds untouched, use the SetDihedralAngle() function
void Update | ( | ) | [protected] |
void UpdateXCS | ( | ) |
immediately update external coordinate system
friend class EntityHandle [friend] |
Definition at line 36 of file ics_editor.hh.