void	btRaycastVehicle::debugDraw(btIDebugDraw* debugDrawer)
{

    for (int v=0; v<this->getNumWheels(); v++)
    {
        btVector3 wheelColor(0,1,1);
        if (getWheelInfo(v).m_raycastInfo.m_isInContact)
        {
            wheelColor.setValue(0,0,1);
        } else
        {
            wheelColor.setValue(1,0,1);
        }

        btVector3 wheelPosWS = getWheelInfo(v).m_worldTransform.getOrigin();

        btVector3 axle = btVector3(
                             getWheelInfo(v).m_worldTransform.getBasis()[0][getRightAxis()],
                             getWheelInfo(v).m_worldTransform.getBasis()[1][getRightAxis()],
                             getWheelInfo(v).m_worldTransform.getBasis()[2][getRightAxis()]);

        //debug wheels (cylinders)
        debugDrawer->drawLine(wheelPosWS,wheelPosWS+axle,wheelColor);
        debugDrawer->drawLine(wheelPosWS,getWheelInfo(v).m_raycastInfo.m_contactPointWS,wheelColor);

    }
}
Exemple #2
0
void RaycastCar::debugDraw(btIDebugDraw * debugDrawer)
{
    for (int v = 0; v < getNumWheels(); v++)
    {
        btVector3 wheelColor(0.0f,1.0f,1.0f);
        if (getWheelInfo(v).m_raycastInfo.m_isInContact)
        {
            wheelColor.setValue(0.0f,0.0f,1.0f);
        }
        else
        {
            wheelColor.setValue(1.0f,0.0f,1.0f);
        }
        btVector3 wheelPosWS = getWheelInfo(v).m_worldTransform.getOrigin();
        btVector3 axle = btVector3(
                             getWheelInfo(v).m_worldTransform.getBasis()[0][getRightAxis()],
                             getWheelInfo(v).m_worldTransform.getBasis()[1][getRightAxis()],
                             getWheelInfo(v).m_worldTransform.getBasis()[2][getRightAxis()]);

        debugDrawer->drawLine(wheelPosWS,wheelPosWS+axle,wheelColor);
        debugDrawer->drawLine(wheelPosWS,getWheelInfo(v).m_raycastInfo.m_contactPointWS,wheelColor);
    }
}