Bulet その7はBulletで使えるジョイントのひとつである、ヒンジジョイントを扱います。
ヒンジジョイントは、任意の軸を中心に回転することしか出来ないよう制限します。
ドアのような動きをします。
追加のヘッダ
#include <BulletDynamics/ConstraintSolver/btHingeConstraint.h>
生成方法
btRigidBody body1; //剛体1
btRigidBody body2; //剛体2
btTransform local1; //剛体1のローカル行列
btTransform local2; //剛体2のローカル行列
btTypedConstraint* constraint = new btSliderConstraint( body1, body2, local1, local2 );
constaint->buldJacobian();
g_World->addConstraint( constraint );
削除方法
ポイントジョイントと同じ
制限のかけ方
float low, high; // ラジアンで指定する 範囲は0.0~180.0まで
constraint->setLimit( low, high );
モーターとして使う
float velocity, maxImpulse; //加速度、推進力
constraint->enableAngularMoter( true, velocity, maxImpulse );
動作確認も以前と同様にすると分かりやすいです。
任意の軸を設定するには、剛体1のローカル行列で設定をします。
だたし、各行列に剛体のサイズ分は平行移動させておいたほうがよいです。
最終更新:2011年02月13日 21:08