Commit 39ead681 by maarten

bondmap, toch werkend?

git-svn-id: svn+ssh://gitlab/srv/svn-repos/pdb-redo/trunk@312 a1961a4f-ab94-4bcc-80e8-33b5a54de466
parent 9c051207
......@@ -27,18 +27,18 @@ class BondMap
return get(index.at(id_a), index.at(id_b)) == 1;
}
// bool is1_4(const Atom& a, const Atom& b) const
// {
// return get(index.at(a.id()), index.at(b.id())) == 3;
// }
//
// bool is1_4(const std::string& id_a, const std::string& id_b) const
// {
// return get(index.at(id_a), index.at(id_b)) == 3;
// }
bool is1_4(const Atom& a, const Atom& b) const;
bool is1_4(const std::string& id_a, const std::string& id_b) const;
bool is1_4(const Atom& a, const Atom& b) const
{
return get(index.at(a.id()), index.at(b.id())) == 3;
}
bool is1_4(const std::string& id_a, const std::string& id_b) const
{
return get(index.at(id_a), index.at(id_b)) == 3;
}
// bool is1_4(const Atom& a, const Atom& b) const;
// bool is1_4(const std::string& id_a, const std::string& id_b) const;
private:
......
......@@ -243,35 +243,35 @@ BondMap::BondMap(const Structure& p)
// return bond[ix];
//}
bool BondMap::is1_4(const Atom& a, const Atom& b) const
{
size_t ixa = index.at(a.id());
size_t ixb = index.at(b.id());
if (ixb < ixa)
swap(ixa, ixb);
bool result = false;
for (size_t ia = 0; result == false and ia + 1 < dim; ++ia)
{
if (ia == ixa or ia == ixb or get(ixa, ia) != 1)
continue;
for (size_t ib = ia + 1; result == false and ib < dim; ++ib)
{
if (ib == ixa or ib == ixb or get(ib, ixb) != 1)
continue;
size_t ix = ib + ia * dim - ia * (ia + 1) / 2;
result = bond[ix] == 1;
}
}
if (result != (get(ixa, ixb) == 3))
cerr << "Verschil in 1-4 binding voor " << a.labelID() << " en " << b.labelID() << " (c = " << (int)get(ixa, ixb) << ")" << endl;
return result;
}
//bool BondMap::is1_4(const Atom& a, const Atom& b) const
//{
// size_t ixa = index.at(a.id());
// size_t ixb = index.at(b.id());
//
// if (ixb < ixa)
// swap(ixa, ixb);
//
// bool result = false;
//
// for (size_t ia = 0; result == false and ia + 1 < dim; ++ia)
// {
// if (ia == ixa or ia == ixb or get(ixa, ia) != 1)
// continue;
//
// for (size_t ib = ia + 1; result == false and ib < dim; ++ib)
// {
// if (ib == ixa or ib == ixb or get(ib, ixb) != 1)
// continue;
//
// size_t ix = ib + ia * dim - ia * (ia + 1) / 2;
// result = bond[ix] == 1;
// }
// }
//
// if (result != (get(ixa, ixb) == 3))
// cerr << "Verschil in 1-4 binding voor " << a.labelID() << " en " << b.labelID() << " (c = " << (int)get(ixa, ixb) << ")" << endl;
//
// return result;
//}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment