9 return btVector3(m[0][0], m[0][1], m[0][2]);
15 return btVector3(m[1][0], m[1][1], m[1][2]);
21 return btVector3(m[2][0], m[2][1], m[2][2]);
27 return btVector3(0,0,0);
33 return btVector3(1.0f, 0, 0);
38 btVector3
right(
const btQuaternion &q) {
39 btMatrix3x3 m = btMatrix3x3(q);
40 btVector3 axis_y = btVector3(m[0][1], m[1][1], m[2][1]);
41 btVector3 axis_z = btVector3(m[0][2], m[1][2], m[2][2]);
42 btVector3
right = axis_y.cross(axis_z);
50 return btVector3(0, 1.0f, 0);
55 btVector3
up(
const btQuaternion &q) {
56 btMatrix3x3 m = btMatrix3x3(q);
57 btVector3 axis_x = btVector3(m[0][0], m[1][0], m[2][0]);
58 btVector3 axis_z = btVector3(m[0][2], m[1][2], m[2][2]);
59 btVector3
up = axis_x.cross(axis_z);
67 return btVector3(0, 0, 1.0f);
74 btMatrix3x3 m = btMatrix3x3(q);
75 btVector3 axis_x = btVector3(m[0][0], m[1][0], m[2][0]);
76 btVector3 axis_y = btVector3(m[0][1], m[1][1], m[2][1]);
77 btVector3
forward = axis_x.cross(axis_y);
84 void print(
const btVector3& vec) {
85 LOG(
"vec x: %.2f y: %.2f z: %.2f", vec.x(), vec.y(), vec.z());
90 void print(
const btVector3* vec) {
91 LOG(
"vec x: %.2f y: %.2f z: %.2f", vec->x(), vec->y(), vec->z());
96 void print(
const btQuaternion& quat) {
97 LOG(
"quat x: %.2f y: %.2f z: %.2f, w: %.2f", quat.x(), quat.y(), quat.z(), quat.w());
102 void print(
const btMatrix3x3& matrix) {
104 matrix.getOpenGLSubMatrix(data);
105 LOG(
"---------------- Matrix begins");
106 LOG(
"%.2f %.2f %.2f %.2f", data[0], data[1], data[2], data[3]);
107 LOG(
"%.2f %.2f %.2f %.2f", data[4], data[5], data[6], data[7]);
108 LOG(
"%.2f %.2f %.2f %.2f", data[8], data[9], data[10], data[11]);
109 LOG(
"---------------- Matrix ends");
133 btMatrix3x3 matrix3 = btMatrix3x3(q);
134 btScalar elements_array[12];
135 matrix3.getOpenGLSubMatrix(elements_array);
void print(const btVector3 &vec)
btVector3 getAxisZ(btMatrix3x3 &m)
btVector3 getAxisY(btMatrix3x3 &m)
Matrix4 btQuaternionToMatrix4(const btQuaternion &q)
btVector3 getAxisX(btMatrix3x3 &m)