vector3 calcMass(OBMol& mol){
vector3 center(0,0,0);
OBAtomIterator i;
OBAtom *atom;
for(atom = mol.BeginAtom(i);atom;atom = mol.NextAtom(i)){
center += atom->GetVector();
}
center /= (float) mol.NumAtoms();
return center;
}
マクロ定義がされていますので、for文を次のように書くこともできます。
FOR_ATOMS_OF_MOL(atom,mol)
{
center += atom->GetVector();
}
ライブラリによって、原子が配列の0から格納されていたり、1から格納されていたりするので、Iteratorを使うことによって、コーディングミスを減らすことができると思います。