Currently I'm doing this;
Code: Select all
//get our facing vector
vec3 facingVec = target_location - current_location;
float temp = atan2(facingVec.z(), facingVec.x());
//convert to degrees
float tempDegrees = temp * 180.0f / 3.14159265f;
float angle = tempDegrees - oldAngle;
oldAngle= tempDegrees;
Code: Select all
void rotate(scene_node *player_node, float angle){
player_node->activate();
btTransform trans = player_node->get_rigid_body()->getCenterOfMassTransform();
btQuaternion transrot = trans.getRotation();
btQuaternion rotquat;
rotquat = rotquat.getIdentity();
rotquat.setY(angle);
transrot = rotquat * transrot;
trans.setRotation(transrot);
player_node->get_rigid_body()->setCenterOfMassTransform(trans);
}