void ConvertPosToBull(const Vector& pos, btVector3& bull) {
bull.setX(HL2BULL(pos.x));
bull.setY(HL2BULL(pos.z));
bull.setZ(-HL2BULL(pos.y));
}
void ConvertPosToHL(const btVector3& pos, Vector& hl) {
hl.x = BULL2HL(pos.x());
hl.y = -BULL2HL(pos.z());
hl.z = BULL2HL(pos.y());
}
void ConvertDirectionToBull(const Vector& dir, btVector3& bull) {
bull.setX(dir.x);
bull.setY(dir.z);
bull.setZ(-dir.y);
}
void ConvertDirectionToHL(const btVector3& dir, Vector& hl) {
hl.x = dir.x();
hl.y = -dir.z();
hl.z = dir.y();
}
void ConvertRotationToBull(const QAngle& angles, btMatrix3x3& bull) {
RadianEuler radian(angles);
btQuaternion q1;
q1.setEulerZYX(radian.z, radian.y, radian.x);
btQuaternion q2(q1.getX(), q1.getZ(), -q1.getY(), q1.getW());
bull.setRotation(q2);
}
void ConvertRotationToBull(const QAngle& angles, btQuaternion& bull) {
RadianEuler radian(angles);
btQuaternion q;
q.setEulerZYX(radian.z, radian.y, radian.x);
bull.setX(q.getX());
bull.setY(q.getZ());
bull.setZ(-q.getY());
bull.setW(q.getW());
}
void ConvertRotationToHL(const btMatrix3x3& matrix, QAngle& hl) {
btQuaternion quat;
matrix.getRotation(quat);
Quaternion q(quat.getX(), -quat.getZ(), quat.getY(), quat.getW());
RadianEuler radian(q);
hl = radian.ToQAngle();
}
void ConvertRotationToHL(const btQuaternion& quat, QAngle& hl)
{
Quaternion q(quat.getX(), -quat.getZ(), quat.getY(), quat.getW());
RadianEuler radian(q);
hl = radian.ToQAngle();
}
void ConvertAngularImpulseToBull(const AngularImpulse& angularimp, btVector3& bull) {
bull.setX(DEG2RAD(angularimp.x));
bull.setY(DEG2RAD(angularimp.z));
bull.setZ(-DEG2RAD(angularimp.y));
}
void ConvertAngularImpulseToHL(const btVector3& angularimp, AngularImpulse& hl) {
hl.x = RAD2DEG(angularimp.x());
hl.y = -RAD2DEG(angularimp.z());
hl.z = RAD2DEG(angularimp.y());
}