ODE for D
ODE for D

 このページは物理エンジンである Open Dynamics Engine(以下ODE) のD言語用ポーティングファイルの公開と、それを使ってごにょごにょするページです。(まだごにょごにょは全然出来てないけど)

- ODE (http://q12.org/ode/)
注意事項
- DLL は VC++6 でコンパイルされています
- DLLは倍精度モード(-DdDOUBLE)でコンパイルされています
- モジュール名は、単語の先頭を大文字にし、_(アンダーバー)は削除しています
- OdecppCollision.d において、dGeom.id() を dGeom.getID() に変更しています*1
- Fast Step Function(関数名の末尾が FS)は、実装が無かっため使えません(定義していません)
- オリジナルにあったマクロのいくつかはテンプレートで実装
- いくつかのマクロは実装していないので注意。必要なら自分で…
- Linux もサポートされているようなので、自分でコンパイルすればいけるかも知れません…
*1 継承先クラスでオーバーライドしているが、D言語では戻り値が違うだけでは違う関数と認識されずに conflict を起こすため
DOWNLOAD

 最新(date: 04/06/2004)

- ode4d_full.lzh サンプル付きフルファイル
- ode4d.lzh 上記のファイルからサンプルを抜いたもの
- ode-0.039a.lzh オリジナルのアーカイブに、いくつか修正を加えたもの*2
*2 特に必要がなければこれは要らない
使い方

 基本的にモジュール ode.Ode をインポートでOK。ただし、C言語用のライブラリなので非常に使いづらい。ode.Odecpp を使ったほうがいいでしょう。

 必須ファイルは
- ode/*.d
- ode.dll
- ode.lib

* ode/ 以下の Dファイルもコンパイルしてリンクしてやってほしい。
※trimesh を使う場合は opcode.lib が必要かも知れない(未確認)

 リンクに必要なオブジェクトファイルは obj.txt に列挙してあるので、リンク時に

> dmd main.d @obj.txt ode.lib

のようにすれば問題ありません。

サンプルについて

 ただ箱を落としてその過程を見るだけ :D

- ESCで終了
- たまにコマンドプロンプトにものすごい数の警告が出るが、おそらくODEのバグ(物体がものすごい速さで回転するときに起こるようです)
- ソースの文字コードは UTF-8 です。Win32API のW系APIを使っているので、使えない環境の人は A系を使うようにすればどうにかなるでしょう(文字コードをSJISにして win32.ascii.windows をインポート?)
- コンパイルは
> dmd -O main physics glscreen error @obj.txt ode.lib win32.lib opengl32.lib glu32.lib gdi32.lib
- YT さんの Windows.h for D を使用しています*3
- shinichiro.hさんの OpenGL porting を使用しています*4
*3 http://hp.vector.co.jp/authors/VA028375/d/
*4 http://user.ecc.u-tokyo.ac.jp/~s31552/wp/d/
ライセンス

 ライセンスについては ODE のものを継承します。詳しくは添付のテキストを参照

ahiru
http://moephp.org/

Back to Top