OBMolPairIter::OBMolPairIter(OBMol &mol) { _parent = &mol; bool foundPair = false; OBAtom *a = _parent->BeginAtom(_i); if (!a) return; OBAtom *b = _parent->BeginAtom(_j); while (!foundPair) { b = _parent->NextAtom(_j); if (!b) { a = _parent->NextAtom(_i); if (!a) return; b = _parent->BeginAtom(_j); } if (a->GetIdx() >= b->GetIdx()) continue; if (a->IsConnected(b)) continue; if (a->IsOneThree(b)) continue; foundPair = true; } _pair.clear(); _pair.push_back(a->GetIdx()); _pair.push_back(b->GetIdx()); }