2007年05月24日

OBAtomIteratorの使い方

OpenBabelのOBAtomIeratorを使って、分子の中心座標を計算してみます。

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を使うことによって、コーディングミスを減らすことができると思います。







posted by わばのり at 08:53| Comment(0) | TrackBack(0) | OpenBabel | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。