diff --git a/modules/mol/base/src/chain_view.cc b/modules/mol/base/src/chain_view.cc index b940a37ee37dd8f82c302ba4b5a51119169cb6f6..4727e31ddce6764bcdfc0e78bb5e7c3c31e0d83f 100644 --- a/modules/mol/base/src/chain_view.cc +++ b/modules/mol/base/src/chain_view.cc @@ -334,14 +334,10 @@ bool ChainView::operator!=(const ChainView& rhs) const Real ChainView::GetMass() const { this->CheckValidity(); - Real mass = 0; + double mass = 0; ResidueViewList::const_iterator i; for (i=data_->residues.begin(); i!=data_->residues.end(); ++i) { - ResidueView r=*i; - for (AtomViewList::const_iterator j=r.GetAtomList().begin(), - e2=r.GetAtomList().end(); j!=e2; ++j) { - mass+=j->GetMass(); - } + mass+=i->GetMass(); } return mass; } diff --git a/modules/mol/base/src/entity_view.cc b/modules/mol/base/src/entity_view.cc index 3e5445b56a8936c7562c5e0d830ad0785c1b1ccb..a88f0b39553a438c0d51359fee91cacf9d85a7a1 100644 --- a/modules/mol/base/src/entity_view.cc +++ b/modules/mol/base/src/entity_view.cc @@ -187,10 +187,10 @@ geom::Vec3 EntityView::GetCenterOfMass() const Real EntityView::GetMass() const { - Real mass = 0; - AtomViewIter it=this->AtomsBegin(); - for(; it!=this->AtomsEnd(); ++it) { - mass+=(*it).GetMass(); + this->CheckValidity(); + double mass = 0; + for (ChainViewList::iterator i=data_->chains.begin();i!=data_->chains.end(); ++i) { + mass+=i->GetMass(); } return mass; } diff --git a/modules/mol/base/src/impl/chain_impl.cc b/modules/mol/base/src/impl/chain_impl.cc index c04e1ed72b33e226ae3a9ce08295ca541b4c1848..46026902068b5e6b978e76cdcbbfdff1499459c6 100644 --- a/modules/mol/base/src/impl/chain_impl.cc +++ b/modules/mol/base/src/impl/chain_impl.cc @@ -400,14 +400,11 @@ void ChainImpl::AssignSecondaryStructure(SecStructure ss, Real ChainImpl::GetMass() const { - Real mass = 0; + double mass = 0; for (ResidueImplList::const_iterator i=residue_list_.begin(); i!=residue_list_.end(); ++i) { ResidueImplPtr r=*i; - for (AtomImplList::iterator j=r->GetAtomList().begin(); - j!=r->GetAtomList().end(); ++j) { - mass+=(*j)->GetMass(); - } + mass+=r->GetMass(); } return mass; } diff --git a/modules/mol/base/src/impl/entity_impl.cc b/modules/mol/base/src/impl/entity_impl.cc index 305e3423041abfb58252cf417a861ada5d77967b..bc3fba841fe6798db72963e07bbbf79d718344c9 100644 --- a/modules/mol/base/src/impl/entity_impl.cc +++ b/modules/mol/base/src/impl/entity_impl.cc @@ -308,10 +308,11 @@ geom::Vec3 EntityImpl::GetCenterOfMass() const { } Real EntityImpl::GetMass() const { - Real mass=0.0; - for (AtomImplMap::const_iterator it = atom_map_.begin(); - it!=atom_map_.end();++it) { - mass+=it->second->GetMass(); + double mass=0.0; + for (ChainImplList::const_iterator i=chain_list_.begin(), + e=chain_list_.end(); i!=e; ++i) { + ChainImplPtr chain=*i; + mass+=chain->GetMass(); } return mass; } diff --git a/modules/mol/base/src/impl/residue_impl.cc b/modules/mol/base/src/impl/residue_impl.cc index 28f0cc6f9047616848e8d0a334da946a6fdfea9f..eb633c5be612603ae304975dfd24335c53aa92ec 100644 --- a/modules/mol/base/src/impl/residue_impl.cc +++ b/modules/mol/base/src/impl/residue_impl.cc @@ -451,7 +451,7 @@ void ResidueImpl::RemoveAltPositionsForAtom(const AtomImplPtr& atom) { Real ResidueImpl::GetMass() const { - Real mass = 0; + double mass = 0; for (AtomImplList::const_iterator i=atom_list_.begin(); i!=atom_list_.end(); ++i) { mass+=(*i)->GetMass();