void keepAromaticCycles() { std::vector< std::vector< ref<Atom> > > kept_cycles; for(unsigned icycle=0; icycle<molecule()->cycles().size(); ++icycle) { int ok = true; for(unsigned iatom=0; iatom<molecule()->cycle(icycle).size(); ++iatom) { int iatom2 = (iatom+1) % molecule()->cycle(icycle).size(); Atom* atom1 = molecule()->cycle(icycle)[iatom].get(); Atom* atom2 = molecule()->cycle(icycle)[iatom2].get(); Bond* bond = molecule()->bond(atom1, atom2); if (bond && bond->bondType() != BT_Aromatic) { ok = false; break; } } if (ok && molecule()->cycle(icycle).size()) kept_cycles.push_back(molecule()->cycle(icycle)); } molecule()->cycles() = kept_cycles; }