近況
瀬戸御大が作ってくれたE3Dのラッパー使ってE3DをC#上で動かしたアル。
滑らかによく動くアル。改編していいと書いてあったので自分好みにカスタマイズするアル。
具体的には、以下のようなコードが少し気になる。
モデルの位置を取得するGetPosメソッドがあるが、御大のラッパーは
Vector3 pos=new Vector3();
E3D.GetPos( modelid , ref pos);
とこのようなコードを書く。E3DforWin32にのっとった記述で慣れ親しんだ人間にはわかりやすいが、おいらは引数をモデルIDのみとし、戻り値を使いたい。
Vector3 pos=E3D.GetPos(modelid);
とこのように書きたいわけだ。引数の数が変わってしまいE3DforWin32の関数表をそのまま流用できなくなってしまうが、VisualStudioでやる分には自分でさまりぃとか書いとけば問題ないだろう。
さんぷる
ここからおとせる。
とりあえずモデルを一つ読み込み、動かす最低限のサンプルをHSPからコピペして作った。
描写スレッドを一個作ってフォームを表示する前に動かしているのだが、Programクラスにstaticなメンバがいっぱいできちゃってあんまり見栄えが良くないなあと思う。
落とせるサンプルは、Form1には何も書かれておらず、ProgramクラスのMainメソッドと、MainLoopメソッドにすべての処理が書かれている。
可能な限り、HSPのサンプルと同じ手順になるようにしたとおもうので、何だァこの見づらいコードは!という方はそちらと比べていただきたく。