int dInitODE2( unsigned int uiInitFlags/*=0*/ );
引数のuiInitFlagsには、dInitODEFlags列挙体の値を指定します。処理が成功したときにはゼロ以外の値を返します。
enum dInitODEFlags
{
// dCleanupODEAllDataForThread()関数の呼び出し時に、
// スレッドのローカルデータが確実に消去されるようにする
dInitFlagManualThreadCleanup = 0x00000001,
};
以前 (ODE0.10まで) はdInitODE()という関数が使用されていましたが、現在ではこれは次のように実行するのと同じ意味となります。
「簡単!実践!ロボットシミュレーション」正誤表 | demura.net:RoboCup・ODE・夢考房
dInitODE2( 0 ); dAllocateODEDataForThread( dAllocateMaskAll );
なおdAllocateODEDataForThread()はスレッドの初期化を行う関数です。
void dCloseODE( void )
終了処理をする際にはdCloseODE()を呼び出すより先に、作成したワールドやスペースのオブジェクトを破棄する必要があります。
ボディとジオメトリは、それを格納するワールドとスペースが破棄された際に自動的に破棄されるため、通常は明示的に破棄する必要はありません。
ジョイントは、それを格納するワールドかジョイント グループが破棄された際に自動的に破棄されます。よってこれも、明示的に破棄する必要はありません。