From 69501bf8f470f0a8ba3a9b6e989d3169dc4504ea Mon Sep 17 00:00:00 2001 From: studga00 <gabriel.studer@stud.unibas.ch> Date: Wed, 8 Aug 2012 16:57:32 +0200 Subject: [PATCH] removed code redundancy in entity copy function, since deep copy of chains can be outsourced in the corresponding insert chain function --- modules/mol/base/src/impl/entity_impl.cc | 15 +-------------- modules/mol/base/src/impl/residue_impl.cc | 3 ++- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/modules/mol/base/src/impl/entity_impl.cc b/modules/mol/base/src/impl/entity_impl.cc index 4b4cb3a7a..1fd465f23 100644 --- a/modules/mol/base/src/impl/entity_impl.cc +++ b/modules/mol/base/src/impl/entity_impl.cc @@ -145,20 +145,7 @@ void EntityImpl::ReplicateHierarchy(EntityImplPtr dest) for (ChainImplList::const_iterator i=chain_list_.begin(), e1=chain_list_.end(); i!=e1; ++i) { ChainImplPtr src_chain=*i; - ChainImplPtr dst_chain=dest->InsertChain(src_chain,false); - // copy generic properties - dst_chain->Assign(*src_chain.get()); - for (ResidueImplList::iterator j=src_chain->GetResidueList().begin(), - e2=src_chain->GetResidueList().end(); j!=e2; ++j) { - ResidueImplPtr src_res=*j; - ResidueImplPtr dst_res=dst_chain->AppendResidue(src_res, false); - for (AtomImplList::iterator k=src_res->GetAtomList().begin(), - e3=src_res->GetAtomList().end(); k!=e3; ++k) { - AtomImplPtr src_atom=*k; - AtomImplPtr dst_atom=dst_res->InsertAtom(src_atom); - dst_atom->SetIndex(src_atom->GetIndex()); - } - } + dest->InsertChain(src_chain,true); } } diff --git a/modules/mol/base/src/impl/residue_impl.cc b/modules/mol/base/src/impl/residue_impl.cc index fd2c7762b..29fee9883 100644 --- a/modules/mol/base/src/impl/residue_impl.cc +++ b/modules/mol/base/src/impl/residue_impl.cc @@ -69,7 +69,8 @@ AtomImplPtr ResidueImpl::InsertAtom(const AtomImplPtr& atom) dst_atom->SetState(atom->GetState()); dst_atom->SetBFactor(atom->GetBFactor()); dst_atom->SetOccupancy(atom->GetOccupancy()); - dst_atom->SetHetAtom(atom->IsHetAtom()); + dst_atom->SetHetAtom(atom->IsHetAtom()); + dst_atom->SetIndex(atom->GetIndex()); if (!atom->HasDefaultProps()) { dst_atom->SetRadius(atom->GetRadius()); -- GitLab