How to apply rotation to a body in Bullet Physics

2019-07-07 08:32发布

问题:

I have rotation values (roll, pitch, yaw). I would like to apply that rotation to a body, but I have no idea how to do that.

回答1:

The most straightforward way would be to directly set the world transform for a rigid body, either through a motion state or by direct setting. To get a transform from roll, pitch, and yaw, you could use:

btRigidBody * rigidBody = //...
btTransform tr;
tr.setIdentity();
btQuaternion quat;
quat.setEuler(yaw,pitch,roll); //or quat.setEulerZYX depending on the ordering you want
tr.setRotation(quat);

rigidBody->setCenterOfMassTransform(tr);