// Seems to make a vector chirality become filled with array of +/- 1 for chiral atoms. void GetChirality(OBMol &mol, std::vector<int> &chirality) { chirality.resize(mol.NumAtoms()+1); fill(chirality.begin(),chirality.end(),0); OBAtom *atom; vector<OBAtom*>::iterator i; for (atom = mol.BeginAtom(i);atom;atom = mol.NextAtom(i)) if (atom->IsChiral()) { if (!atom->HasChiralVolume()) { double sv = CalcSignedVolume(mol,atom); if (sv < 0.0) { chirality[atom->GetIdx()-1] = -1; atom->SetNegativeStereo(); } else if (sv > 0.0) { chirality[atom->GetIdx()-1] = 1; atom->SetPositiveStereo(); } } else // already calculated signed volume (e.g., imported from somewhere) { if (atom ->IsPositiveStereo()) chirality[atom->GetIdx()-1] = 1; else chirality[atom->GetIdx()-1] = -1; } } }