can't pick model

huaner

12-07-2007 14:38:19

hi:
i use QuickGUI and want to pick a model, my codes are below:

bool mousePressed( const OIS::MouseEvent &arg, OIS::MouseButtonID id )
{
QuickGUI::GUIManager::getSingleton().injectMouseButtonDown (static_cast<QuickGUI::MouseButtonID>(id));

if (id == OIS::MB_Left )
{
Vector2 mousePos = QuickGUI::MouseCursor::getSingleton().getPixelPosition();

Ogre::Ray mouseRay = mCamera->getCameraToViewportRay(mousePos.x, mousePos.y);
mRaySceneQuery = mCamera->getSceneManager( )->createRayQuery( mouseRay );
mRaySceneQuery->setRay( mouseRay );

RaySceneQueryResult &result = mRaySceneQuery->execute();

Real closestDistance = LONG_MAX;

RaySceneQueryResult::iterator rayIterator;

String entName, nodeName;
for ( rayIterator = result.begin( );rayIterator != result.end( ); rayIterator++ )
{
if ( ( *rayIterator ).movable != NULL )

{
if ( ( *rayIterator ).distance < closestDistance )
{
PickclosestObject = ( *rayIterator ).movable;
closestDistance = ( *rayIterator ).distance;
}
if(PickclosestObject)
{
CurrentNode = PickclosestObject->getParentSceneNode();
entName = PickclosestObject->getName();
nodeName = CurrentNode->getName();
}
}
}

}
}

but, this can't pick a model. why?