/Ode-for-LuaJIT

open dynamics engine LuaJIT ffi

Primary LanguageLua

Ode for LuaJIT

openDynamics をLuaJITで使うための ffi です。
中身は.hファイルのODE_API でEXPORTされてある関数をコピペしました。

  • すべての関数が使えるかは未確認です。
  • openDynamicsのdemoアプリを比較してみたところ、誤差があるようなので正確さが必要な場合は向いてないようです。

drawstuff.dll、ode_double.dllはmingwでコンパイルしています。

note

動作の確認用にソースを使わせていただきました。

LuaJIT ffiでコールバック関数のメモ

ffi.cdef( [[ ]] )

...
//typedef void dNearCallback(void *data, dGeomID o1, dGeomID o2);
typedef void (*dNearCallback)(void *data, dGeomID o1, dGeomID o2);
....
//void dSpaceCollide (dSpaceID space, void *data, dNearCallback *callback);
void dSpaceCollide (dSpaceID space, void *data, void *callback);
...

main lua

function nearCallback(data,  obj1,  obj2 )
...
end

......

-- main Sim loop
local cb = ffi.cast("dNearCallback",nearCallback)
ode.dSpaceCollide(space,nil,cb);
cb:free();

demo6.png

demo5.png

demoCards.png

contact.png

congeomtact.png

joint.png