4. データの種類と仕様
4.1. 基本データ型
ODEライブラリは単精度もしくは倍精度浮動小数点のどちらかを用いて構築できる。単精度はより高速でより少ないメモリを使用するが、シミュレーションには明らかな問題として数値的な誤りがあるだろう。単精度ではより少ない精度と安定性が得られる。
[must describe what factors influence accuracy and stability].
浮動小数点データ型はdRealである。その他一般的に使用される型は dVector3、dVector4、dMatrix3、dMatrix4、dQuaternionがある。
4.2. オブジェクトとID
作成することができるオブジェクトには様々な型がある:
- dWorld - 力学世界
- dSpace - 衝突スペース
- dBody - 剛体
- dGeom - (衝突のための)ジオメトリ.
- dJoint - ジョイント
- dJointGroup - ジョイントのグループ
これらのオブジェクトを扱う関数はオブジェクトIDが使われたり返されたりする。オブジェクトIDの種類はdWorldID,dBodyIDなどがある。
4.3. 引数の仕様
"set"関数に加えられたすべての3ベクトル(x,y,z)は個別のx,y,zの引数として与えられる。
get()関数の返り値であるすべての3ベクトルはdRealの配列へのポインタである。
大きなベクトルは、常にdRealの配列へのポインタとして与えたり返されたりする。
すべての座標系は特別な場合を除いてグローバル構成である。
4.4. C 対 C++
ODEライブラリはC++で書かれている。しかしそのパブリックインタフェースはシンプルなC関数で作られクラスがない。なぜか。
使うCのインターフェースはODEのために役立たないC++機能に比べ単純な機能だけである。
それは複数のコンパイラでのC++が壊れるのとランタイムサポート問題を防ぐ。
The user doesn't have to be familiar with C++ quirks to use ODE.
ユーザはODEを使うためのC++の特異を知らなくてもよい。
使うCのインターフェースはODEのために役立たないC++機能に比べ単純な機能だけである。
それは複数のコンパイラでのC++が壊れるのとランタイムサポート問題を防ぐ。
The user doesn't have to be familiar with C++ quirks to use ODE.
ユーザはODEを使うためのC++の特異を知らなくてもよい。
4.5. デバッグ
ODEライブラリは"デバッグ"または"リリース"モードでコンパイルすることができる。デバッグモードは遅い、しかし関数の引数がチェックでき、多くのランタイムテストは内部の整合性が確実になる。リリースモードは速い、しかしチェックなしである。