Skip to content
Snippets Groups Projects
Commit eac6d6ec authored by tobias's avatar tobias
Browse files

small extension to ICSEditor::RotateTorsionAngle

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2106 5a81b35b-ba03-0410-adc8-b2c5c5119f08
parent 37d97daf
No related branches found
No related tags found
No related merge requests found
......@@ -48,6 +48,11 @@ void (ICSEditor::*set_torsion_a)(TorsionHandle, Real)=&ICSEditor::SetTorsionAngl
void (ICSEditor::*set_torsion_b)(const AtomHandle&, const AtomHandle&,
const AtomHandle&, const AtomHandle&,
Real)=&ICSEditor::SetTorsionAngle;
void (ICSEditor::*rotate_torsion_a)(TorsionHandle, Real)=&ICSEditor::RotateTorsionAngle;
void (ICSEditor::*rotate_torsion_b)(const AtomHandle&, const AtomHandle&,
const AtomHandle&, const AtomHandle&,
Real)=&ICSEditor::RotateTorsionAngle;
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(X_insert_atom_overloads,
EditorBase::InsertAtom, 3, 4)
......@@ -94,7 +99,8 @@ void export_Editors()
.def("SetBondLength", &ICSEditor::SetBondLength)
.def("SetTorsionAngle", set_torsion_a)
.def("SetTorsionAngle", set_torsion_b)
.def("RotateTorsionAngle", &ICSEditor::RotateTorsionAngle)
.def("RotateTorsionAngle", rotate_torsion_a)
.def("RotateTorsionAngle", rotate_torsion_b)
.def("UpdateXCS", &ICSEditor::UpdateXCS)
.def("__exit__", &ICSEditor::UpdateXCS)
;
......
......@@ -113,6 +113,23 @@ void ICSEditor::RotateTorsionAngle(TorsionHandle torsion, Real angle)
}
void ICSEditor::RotateTorsionAngle(const AtomHandle& atom_a,
const AtomHandle& atom_b,
const AtomHandle& atom_c,
const AtomHandle& atom_d, Real angle)
{
CheckHandleValidity(atom_a);
CheckHandleValidity(atom_b);
CheckHandleValidity(atom_c);
CheckHandleValidity(atom_d);
impl::Dihedral d(atom_a.Impl(), atom_b.Impl(), atom_c.Impl(), atom_d.Impl());
Real cur_angle=d.GetAngleICS();
d.SetAngleICS(cur_angle+angle);
ent_.Impl()->MarkXCSDirty();
this->Update();
}
void ICSEditor::SetTorsionAngle(const AtomHandle& atom_a,
const AtomHandle& atom_b,
const AtomHandle& atom_c,
......
......@@ -78,6 +78,12 @@ public:
/// \brief rotate torsion angle
void RotateTorsionAngle(TorsionHandle torsion, Real delta);
void RotateTorsionAngle(const AtomHandle& atom_a,
const AtomHandle& atom_b,
const AtomHandle& atom_c,
const AtomHandle& atom_d,
Real angle);
void SetTorsionAngle(const AtomHandle& atom_a, const AtomHandle& atom_b,
const AtomHandle& atom_c, const AtomHandle& atom_d,
Real angle);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment