コンパウンドをシャシーとした弾丸車両を作成しましたが、コンパウンドはシャシーと砲塔の2体で構成されています。
次のようにタレット変換と opengl マトリックスを取得できます。
// get chassis and turret transforms
btTransform chassisTransform = m_vehicle->getChassisWorldTransform();
btTransform turretTransform = compound->getChildTransform(1);
// multiply transforms to get updated turret transform
turretTransform *= chassisTransform;
// get turret matrix
btScalar turretMatrix[16];
turretTransform.getOpenGLMatrix(turretMatrix);
turretTransform は、btCollisionShape オブジェクト (turretShape) の変換です。
このタレットを Y 軸を中心に回転させようとしています。
私はこれを試しました:
turretTransform.setRotation(btQuaternion(btVector3(0, 1, 0), angle));
angle はフロートですが、何も起こりません。
私は間違いなく何かが欠けていますが、これらのローテーションがどのように機能するかを完全には理解していません。