フォト

Google AdSense


  • AdSense
無料ブログはココログ

« 今週 | トップページ | SoftBody »

2008.06.01

ソースの書き換え

BulletをWindows Mobileで動かすために若干のソースの書き換えをしています。

書き換え箇所
http://sites.google.com/site/shaderjp/port-bullet-physics-engine-to-windows-mobile/bullet%E3%81%AEwindows-mobile%E3%81%B8%E3%81%AE%E7%A7%BB%E6%A4%8D

書き換えの理由として、Windows Mobileではcosfやsinfのようなfloatの算術関数が使えなかったことにあります。その場合には、BT_USE_DOUBLE_PRECISIONやBT_FORCE_DOUBLE_FUNCTIONSを指定すると事でfloatの命令をdoubleに変えることが出来ます。三角関数などはBulletの算術ライブラリのほうで、プリプロセッサによって精度が変わるようにマクロで記述されているんですが、一部のソースがこれを守ってないんですよね(sinfとかcosfあとかatan2fをそのまま呼んでいる)。コレに関しては修正して欲しいよなぁ(フォーラムで言うべきだろうけど)。

あと、

・btSequentialImpulseConstraintSolver.cpp 内 719行目

solverConstraint.m_penetration = btMin(cp.getDistance()+infoGlobal.m_linearSlop,0.f);

を下記に変更.btSclarということを明示する.

solverConstraint.m_penetration = btMin(cp.getDistance()+infoGlobal.m_linearSlop,(btScalar)0.0);

と言うのに関しては、doubleで行くときに第1引数はdoubleだけど第2引数がfloatと見られる(0.fなので)らしくてコンパイラがエラーを出しますね。

« 今週 | トップページ | SoftBody »

Programming」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« 今週 | トップページ | SoftBody »