OGRE屏幕坐标转世界坐标
2007-06-04 10:18
423 查看
http://download1.csdn.net/down3/20070604/04105853850.zip
其实这些OGRE已经帮我们做好了。。不多说 看代码
这里关键是要监听类要继承MouseListener
然后在mousePressed(MouseEvent* e)进行处理,关键是这个函数
virtual void mousePressed(MouseEvent* e)
{
// Left mouse button down
if (e->getButtonID() & MouseEvent::BUTTON0_MASK)
{
// Setup the ray scene query
Ray mouseRay = mCamera->getCameraToViewportRay( e->getX(), e->getY() );
mRaySceneQuery->setRay( mouseRay );
// Execute query
RaySceneQueryResult &result = mRaySceneQuery->execute();
RaySceneQueryResult::iterator itr = result.begin( );
// Get results, create a node/entity on the position
if ( itr != result.end() && itr->worldFragment )
{
char name[16];
sprintf( name, "Robot%d", mCount++ );
Entity *ent = mSceneMgr->createEntity( name, "robot.mesh" );
mCurrentObject = mSceneMgr->getRootSceneNode( )->createChildSceneNode( String(name) + "Node", itr->worldFragment->singleIntersection );
mCurrentObject->attachObject( ent );
mCurrentObject->setScale( 0.1f, 0.1f, 0.1f );
} // if
mLMouseDown = true;
} // if
// Right mouse button down
else if (e->getButtonID() & MouseEvent::BUTTON1_MASK)
{
mRMouseDown = true;
CEGUI::MouseCursor::getSingleton().hide( );
} // else if
} // mousePressed
其实这些OGRE已经帮我们做好了。。不多说 看代码
这里关键是要监听类要继承MouseListener
然后在mousePressed(MouseEvent* e)进行处理,关键是这个函数
virtual void mousePressed(MouseEvent* e)
{
// Left mouse button down
if (e->getButtonID() & MouseEvent::BUTTON0_MASK)
{
// Setup the ray scene query
Ray mouseRay = mCamera->getCameraToViewportRay( e->getX(), e->getY() );
mRaySceneQuery->setRay( mouseRay );
// Execute query
RaySceneQueryResult &result = mRaySceneQuery->execute();
RaySceneQueryResult::iterator itr = result.begin( );
// Get results, create a node/entity on the position
if ( itr != result.end() && itr->worldFragment )
{
char name[16];
sprintf( name, "Robot%d", mCount++ );
Entity *ent = mSceneMgr->createEntity( name, "robot.mesh" );
mCurrentObject = mSceneMgr->getRootSceneNode( )->createChildSceneNode( String(name) + "Node", itr->worldFragment->singleIntersection );
mCurrentObject->attachObject( ent );
mCurrentObject->setScale( 0.1f, 0.1f, 0.1f );
} // if
mLMouseDown = true;
} // if
// Right mouse button down
else if (e->getButtonID() & MouseEvent::BUTTON1_MASK)
{
mRMouseDown = true;
CEGUI::MouseCursor::getSingleton().hide( );
} // else if
} // mousePressed
相关文章推荐
- ogre世界坐标鱼屏幕坐标相互转换
- OGRE的2D坐标、CEGUI坐标、鼠标坐标、 世界坐标转屏幕坐标
- ogre 世界坐标、本地坐标、屏幕坐标之间的转换
- OGRE的2D坐标、CEGUI坐标、鼠标坐标、 世界坐标转屏幕坐标
- ogre世界坐标与屏幕坐标相互转换
- OGRE屏幕坐标转世界坐标
- unity3D中 局部坐标,世界坐标以及屏幕坐标,transform变换坐标以及 变换方向心得
- Unity3D将屏幕坐标上的点转换为世界坐标中的点
- unity3d的世界坐标转化成屏幕坐标
- osg 屏幕坐标和世界坐标转换
- 屏幕坐标转化为世界坐标(vc opengl)
- UGUI世界坐标转屏幕坐标
- NGUI 与世界坐标与屏幕坐标之间的转换的帮助类
- 屏幕坐标转世界坐标(小球发射)
- NGUI,世界坐标,屏幕坐标转换
- unity 3d实验屏幕坐标到世界坐标
- OpenGL中的屏幕坐标和世界坐标的转换
- 屏幕坐标到OpenGL世界坐标的转换
- 屏幕坐标向世界坐标转换
- 世界坐标物体在屏幕上的方位显示