From 869ea36756dd1ab89bdf6c8634ddfefcfd574f39 Mon Sep 17 00:00:00 2001
From: Gabriel Studer <gabriel.studer@stud.unibas.ch>
Date: Fri, 2 Nov 2012 09:03:24 +0100
Subject: [PATCH] Allow renumbering of single chain

---
 modules/mol/base/pymod/export_editors.cc |  1 +
 modules/mol/base/src/editor_base.cc      |  5 +++++
 modules/mol/base/src/editor_base.hh      | 17 +++++++++++++++++
 3 files changed, 23 insertions(+)

diff --git a/modules/mol/base/pymod/export_editors.cc b/modules/mol/base/pymod/export_editors.cc
index aae903f7d..e204bbd2e 100644
--- a/modules/mol/base/pymod/export_editors.cc
+++ b/modules/mol/base/pymod/export_editors.cc
@@ -249,6 +249,7 @@ void export_Editors()
     .def("ReorderResidues",&EditorBase::ReorderResidues)
     .def("ReorderAllResidues",&EditorBase::ReorderAllResidues)
     .def("RenumberAllResidues",&EditorBase::RenumberAllResidues)
+    .def("RenumberChain",&EditorBase::RenumberChain)
   ;
   
   void (XCSEditor::*apply_transform1)(const geom::Mat4&) = &XCSEditor::ApplyTransform;
diff --git a/modules/mol/base/src/editor_base.cc b/modules/mol/base/src/editor_base.cc
index ff19cddff..2b9a3b56d 100644
--- a/modules/mol/base/src/editor_base.cc
+++ b/modules/mol/base/src/editor_base.cc
@@ -208,6 +208,11 @@ void EditorBase::RenumberAllResidues(int start, bool keep_spacing)
   ent_.Impl()->RenumberAllResidues(start, keep_spacing);
 }
 
+void EditorBase::RenumberChain(ChainHandle& chain, int start, bool keep_spacing)
+{
+  chain.Impl()->RenumberAllResidues(start, keep_spacing);
+}
+
 void EditorBase::RenameAtom(AtomHandle atom, const String& new_name)
 {
   CheckHandleValidity(atom);
diff --git a/modules/mol/base/src/editor_base.hh b/modules/mol/base/src/editor_base.hh
index 7d6f6d65a..c081ab978 100644
--- a/modules/mol/base/src/editor_base.hh
+++ b/modules/mol/base/src/editor_base.hh
@@ -277,6 +277,23 @@ public:
   ///           If set to false, residues will continously be renumbered ongoing from start.
   ///           Otherwise the spacings between the residues are kept.
   void RenumberAllResidues(int start, bool keep_spacing);
+
+
+
+  /// \brief renumber residues of one chain
+  ///
+  /// \param chain
+  ///           All residues of this chain will be renumbered according to the
+  ///           parameters start and keep_spacing
+  ///
+  /// \param start
+  ///           Residues of given chain will be renumbered, whereas the first
+  ///           residue gets the residue number start.
+  ///
+  /// \param keep_spacing
+  ///           If set to false, residues will continously be renumbered ongoing from start.
+  ///           Otherwise the spacings between the residues are kept.
+  void RenumberChain(ChainHandle& chain, int start, bool keep_spacing);
     
   /// \brief Get edit mode of editor
   EditMode GetMode() const {return mode_;}
-- 
GitLab