virtual void GetWheelOrientationQuaternion(int wheelIndex,float& quatX,float& quatY,float& quatZ,float& quatW) const { SimdTransform trans = m_vehicle->GetWheelTransformWS(wheelIndex); SimdQuaternion quat = trans.getRotation(); SimdMatrix3x3 orn2(quat); quatX = trans.getRotation().x(); quatY = trans.getRotation().y(); quatZ = trans.getRotation().z(); quatW = trans.getRotation()[3]; //printf("test"); }
void SyncWheels() { int numWheels = GetNumWheels(); int i; for (i=0;i<numWheels;i++) { WheelInfo& info = m_vehicle->GetWheelInfo(i); PHY_IMotionState* motionState = (PHY_IMotionState*)info.m_clientInfo ; m_vehicle->UpdateWheelTransform(i); SimdTransform trans = m_vehicle->GetWheelTransformWS(i); SimdQuaternion orn = trans.getRotation(); const SimdVector3& pos = trans.getOrigin(); motionState->setWorldOrientation(orn.x(),orn.y(),orn.z(),orn[3]); motionState->setWorldPosition(pos.x(),pos.y(),pos.z()); } }