![]() |
Springhead
An open source physics engine for virtual reality, haptics and motion generation.
|
Springhead2は、速度ベースLCPによる拘束力計算(PHConstraintEngineIf) と ペナルティ法による接触力計算(PHPenaltyEngineIf)の2つのエンジンを持っています。 ほとんどの場合、速度ベースLCPによる拘束力計算(PHConstraintEngineIf)だけを使うことになります。
この拘束力計算や物理シミュレーションの原理については、 EC2006での講演資料(EC2006PBM.ppt)と src/Physics/lcpnote.txt を参照してください。 ここには、どのクラスで、各計算を行っているのかを記すだけにとどめます。
物理シミュレーションを統括しているのは、PHSceneIf です。 ひとつのシーンについてのすべての情報がPHSceneIf オブジェクトから参照できます。 PHSceneIf は、いくつかのエンジン PHEngineIf の子孫を持ちます。 その中でも重要なのは拘束力を計算する PHConstraintEngineIf です。
拘束条件には、PHConstraintIf とその派生クラスが対応しています。 シーンの拘束条件達を持って、拘束計算の呼び出しを行っているのが、 PHConstraintEngineIf です。
拘束力計算の手順と関係するクラス・関数を示します。