void MolconvWindow::selectAtom(chemkit::Atom *theAtom, bool wholeMolecule) { if (wholeMolecule) for (int i = 0; i < int(theAtom->molecule()->size()); i++) selectAtom(theAtom->molecule()->atom(i)); else selectAtom(theAtom); updateSelection(); }
// Select Atoms along any path from the specified one void Species::selectFromAtom(SpeciesAtom* i, SpeciesBond* exclude) { // Loop over Bonds on specified Atom selectAtom(i); SpeciesAtom* j; for (RefListItem<SpeciesBond,int>* refBond = i->bonds(); refBond != NULL; refBond = refBond->next) { // Is this the excluded Bond? if (exclude == refBond->item) continue; j = refBond->item->partner(i); if (selectedAtoms_.contains(j)) continue; selectFromAtom(j, exclude); } }