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 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/42745125

この記事へのトラックバック
×

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