|
|
??????????????????3DMax????????????????????Z??????????0.0, 0, 160.0????0.0, 0, 0.0????????????????????????0.0, 0, 160.0????????Z?????????????0, 0, 0??????????????????????????????????
??????????????Line3D????http://www.ogre3d.org/wiki/index.php/Line3D?
void XDemoApp::createScene(void)
{
mGUIRenderer = new CEGUI::OgreCEGUIRenderer(mWindow,
Ogre::RENDER_QUEUE_OVERLAY, false, 3000, mSceneMgr);
mGUISystem = new CEGUI::System(mGUIRenderer);
CEGUI: ogger::getSingleton().setLoggingLevel(CEGUI::Informative);
CEGUI::SchemeManager::getSingleton().loadScheme(
(CEGUI::utf8*)"TaharezLookSkin.scheme");
mGUISystem->setDefaultMouseCursor(
(CEGUI::utf8*)"TaharezLook", (CEGUI::utf8*)"MouseArrow");
mGUISystem->setDefaultFont((CEGUI::utf8*)"BlueHighway-12");
CEGUI::MouseCursor::getSingleton().setImage("TaharezLook", "MouseArrow");
CEGUI::MouseCursor::getSingleton().show( );
setupEventHandlers();
// ??????
mSceneMgr->setAmbientLight(ColourValue(1, 1, 1));
Entity *ent = mSceneMgr->createEntity("Wall", "wall.mesh");
SceneNode *node = mSceneMgr->getRootSceneNode()->createChildSceneNode("WallNode");
node->attachObject(ent);
// ????
Line3D *myLine = new Line3D();
myLine->addPoint(Vector3(0.0, 0, 160.0));
myLine->addPoint(Vector3(0.0, 0, 0.0));
myLine->drawLines();
SceneNode *myNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();
myNode->attachObject(myLine);
// ???????
mCamera->setPosition(Vector3(0, 20, 200));
mCamera->lookAt(Vector3(0, 0, 0));
// Overlay
overlay = OverlayManager::getSingleton().getByName("Example1/VolTexOverlay");
overlay->show();
Vector3 intersectPoint;
// ??????(0.0, 0, 160.0)????????Z??????
RaySceneQuery* raySceneQuery = mSceneMgr->createRayQuery(Ray(Vector3(0.0, 0, 160.0), Vector3::NEGATIVE_UNIT_Z));
raySceneQuery->setSortByDistance(true);
RaySceneQueryResult& qryResult = raySceneQuery->execute();
RaySceneQueryResult::iterator it;
it = qryResult.begin();
// ??????Overlay??????
if(it != qryResult.end() && it->worldFragment)
{
intersectPoint = it->worldFragment->singleIntersection;
OverlayManager::getSingleton().getOverlayElement("Example1/Info/Para1")->setCaption(StringConverter::toString(intersectPoint));
}
// ????Overlay???????????Size
else
{
OverlayManager::getSingleton().getOverlayElement("Example1/Info/Para1")->setCaption(StringConverter::toString(qryResult.size()));
}
}
??????????
|
-
|