2012年9月18日火曜日

Open Dynamics EngineのMacへのインストール

はじめに 

物理エンジンのオープンソースOpen Dynamics Engine(ODE)をXcodeで動かしてみました。

開発環境 

  1. iMac
  2. Mac OS X 10.8.1
  3. Processor:3.06GHz Intel Core 2 Duo
  4. Memory:4GB
  5. Xcode4.4.1

インストール 

macportsにあるので簡単です。 ODEは2つのライブラリから構成されています。
  1. 剛体の力学を計算するライブラリ(ode)
  2. 描画するライブラリ(drawstuff)
上記のportでインストールされるのはodeのみです。drawstuffもインストールしたいのでここからソースを取ってきます。インストール方法はここにあります。 ここで、libtoolizeがない!というエラーが出ました。 autogen.shの36行目から38行目までのコメントアウトを外します。Macではlibtoolizeはglibtoolizeに相当すると書いてあります。 再度挑戦。 今度は上手く行きました。odeとdrawstuffがコンパイルされています。odeは既にportで入れたので、drawstuffだけを手でコピーしました。 これでサンプルを動かす準備が整いました。

ODEのインターフェース 

ここ にこんな文章があります。 ライブラリ自身はC++で書かれていますが、Cインターフェースを使って欲しいというのが作者の願いのようです。でも、やっぱりC++で書いてみたいです。

サンプルプログラム 

こちらにODEの初級講座があります。これの第6回のソース「サンプルプログラム6マルチ」をC++で書き直してみました。Cインターフェースの解説はこちらにありますが、C++の解説はありません。ですが、odecpp.hなるヘッダが提供されています。これを見ながら実装しました。すこし長いですが全文を貼付けます。10行目のパスは、ODEのソースに含まれているディレクトリへのパスです。drawstuffはOpenGLを使って実装されているので、得意な人にとっては扱いやすいと思います。ソースの解説は...もう少し精通してからにします。

コンパイルオプション 

Header Search Path:
パス 目的
/opt/local/include/ odeヘッダー
/usr/local/include/ drawstuffヘッダー

Library Search Path:
パス 目的
/opt/local/lib odeライブラリ
/usr/local/lib drawstuffライブラリ

Other Linker Flags:
-lode -ldrawstuff -framework OpenGL -framework GLUT

Apple LLVM compiler 4.0 - Language:
C++ Language Dialect C++11 [-std=c++11]
C++ Standard Library libc++ (LLVM C++ standard library with C++11 support)

実行 

並んだ赤玉が地面に着地して弾みます。55行目のbounceが反発係数です。1のとき完全弾性衝突です。0から1までの間の値を設定します。

0 件のコメント:

コメントを投稿