diff --git a/modules/mol/alg/src/local_dist_test.cc b/modules/mol/alg/src/local_dist_test.cc index 2a0c07bf58190170938e2a33340da4834837d042..bd88902b0e181bb29f62da86ae41367137b23ded 100644 --- a/modules/mol/alg/src/local_dist_test.cc +++ b/modules/mol/alg/src/local_dist_test.cc @@ -58,12 +58,18 @@ std::pair<Real, Real> calc_overlap(ResidueView ref_res, AtomViewList ref_atoms=ref_res.GetAtomList(); ResidueView mdl_res=mdl_chain.FindResidue(ref_res.GetNumber()); + AtomViewList within; + if (max_dist<0){ + within=ref.GetAtomList(); + } for (AtomViewList::iterator ai=ref_atoms.begin(), ae=ref_atoms.end(); ai!=ae; ++ai) { if (ai->GetElement()=="H") { continue; } String name=swap ? swapped_name(ai->GetName()) : ai->GetName(); AtomView av1=mdl_res ? mdl_res.FindAtom(name) : AtomView(); - AtomViewList within=ref.FindWithin(ai->GetPos(), max_dist); + if (max_dist>=0){ + within=ref.FindWithin(ai->GetPos(), max_dist); + } for (AtomViewList::iterator aj=within.begin(), ae2=within.end(); aj!=ae2; ++aj) { if (aj->GetElement()=="H") { continue; } @@ -88,9 +94,6 @@ std::pair<Real, Real> calc_overlap(ResidueView ref_res, continue; } if (aj->GetResidue().GetNumber()>ref_res.GetNumber()) { - if (aj->GetResidue().GetNumber()<=ref_res.GetNumber()) { - continue; - } AtomView av2=mdl_chain.FindAtom(aj->GetResidue().GetNumber(), aj->GetName()); overlap.second+=1.0;