//查询鼠标高度 mMouse-
CEGUI::Point mousePos = CEGUI::MouseCursor::getSingleton().getPosition();
Ray mouseRay = mCamera->getCameraToViewportRay(mousePos.d_x/float(mMouse->getMouseState().width), mousePos.d_y/float(mMouse->getMouseState().height));
mRaySceneQuery->setRay(mouseRay);
mRaySceneQuery->setSortByDistance(true);
//Execute query
RaySceneQueryResult &result = mRaySceneQuery->execute();
RaySceneQueryResult::iterator itr;
for ( itr = result.begin(); itr != result.end(); itr++ )
{
//计算鼠标当前像素的高度值
Vector3 RayDirection = mouseRay.getDirection();//鼠标射线方向
float CamDistance = itr->distance;//鼠标射线从起点到平面上点的两点距离
Vector3 MouseBeginPosition = mouseRay.getOrigin();//鼠标起点坐标
Vector3 CurrnetPix = MouseBeginPosition + CamDistance*RayDirection;//起点+方向*距离=终点坐标
CursorMapX = -(int)CurrnetPix.x + PixsWidth/2;
CursorMapY = -(int)CurrnetPix.z + PixsHeight/2;
if (CursorMapX<=0||CursorMapX>=PixsWidth||CursorMapY<=0||CursorMapY>=PixsHeight)
{
break;
}
CursorHeight = pwHeight[CursorMapY*PixsWidth + CursorMapX];
return mContinue;
}
//出界
CursorMapX = 0;
CursorMapY = 0;
CursorHeight = 0;
return mContinue;
}