このページは物理エンジンである 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 もサポートされているようなので、自分でコンパイルすればいけるかも知れません…
最新(date: 04/06/2004)
- ode4d_full.lzh サンプル付きフルファイル
- ode4d.lzh 上記のファイルからサンプルを抜いたもの
- ode-0.039a.lzh オリジナルのアーカイブに、いくつか修正を加えたもの*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
ライセンスについては ODE のものを継承します。詳しくは添付のテキストを参照
ahiru