void setupPlayer() { Player *player = getGameState()->getPlayer(); if (!player->isReady()) { return; } // Set viewing position with the Y axis as upright. viewMatrix.SetIdentity(); viewMatrix.LookAt(CIwFVec3(0,-11,0), CIwFVec3(0,0,100), CIwFVec3(0,-1,0)); // Rotate according to compass heading viewMatrix.PostRotateY(rad(player->getHeading())); IwGxSetViewMatrix(&viewMatrix); }
void CzPlatformRender::SetModelMatrix(CzMatrix4* mat) { CIwFMat m; m.SetIdentity(); m.m[0][0] = mat->m[0][0]; m.m[1][0] = mat->m[1][0]; m.m[2][0] = mat->m[2][0]; m.m[0][1] = mat->m[0][1]; m.m[1][1] = mat->m[1][1]; m.m[2][1] = mat->m[2][1]; m.m[0][2] = mat->m[0][2]; m.m[1][2] = mat->m[1][2]; m.m[2][2] = mat->m[2][2]; m.t.x = mat->m[0][3]; m.t.y = mat->m[1][3]; m.t.z = mat->m[2][3]; IwGxSetModelMatrix(&m); }
CIwFMat Physics::GetMatrixFromRigidBody( const btRigidBody* b ) { CIwFMat modelMatrix; btMatrix3x3 mRot; btTransform btTrans = b->getWorldTransform(); btVector3 pos = btTrans.getOrigin(); mRot = btTrans.getBasis(); modelMatrix.SetIdentity(); for( int i = 0, j = 0; i < 3; ++i, j = 0 ) { modelMatrix.m[i][j] = ( mRot.getRow( i ).x() ); modelMatrix.m[i][++j] = ( mRot.getRow( i ).y() ); modelMatrix.m[i][++j] = ( mRot.getRow( i ).z() ); } modelMatrix.SetTrans( CIwFVec3( pos[0], pos[1], pos[2] ) ); return modelMatrix; }