- Timestamp:
- 08/29/06 18:28:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Vis/KdTreeDemo/OGRE/src/TestKdTreeAppListener.cpp
r1285 r1296 113 113 mTopCamFollow(true), 114 114 mShowTree(SHOWTREE_OFF), 115 // view cells 116 mUseViewCells(false), 117 mUseVisibilityFilter(false), 115 118 //counters 116 119 mSeqNum(0), … … 164 167 mCamNode = sm->getSceneNode("PlayerCamNode"); 165 168 169 sm->getOption("UseViewCells", &mUseViewCells); 170 sm->getOption("UseVisibilityFilter", &mUseVisibilityFilter); 171 166 172 mRaySceneQuery = mSceneMgr->createRayQuery(Ray(mCamNode->getPosition(), Vector3::NEGATIVE_UNIT_Y)); 167 173 … … 248 254 249 255 String ext = "KdTree/"; 250 String sMD, sKT, sKI, sHL, sBM, sRM, sFM, sTC, sEV ;256 String sMD, sKT, sKI, sHL, sBM, sRM, sFM, sTC, sEV, sVC, sVF; 251 257 252 258 int maxd; … … 319 325 else 320 326 sTC = ": Free"; 327 328 if (mSceneMgr->getOption("UseViewCells", &mUseViewCells)) 329 { 330 if (mUseViewCells) 331 sVC = ": on"; 332 else 333 sVC = ": off"; 334 } 335 else 336 { 337 sVC = NA; 338 } 339 340 if (mSceneMgr->getOption("UseVisibilityFilter", &mUseVisibilityFilter)) 341 { 342 if (mUseVisibilityFilter) 343 sVF = ": on"; 344 else 345 sVF = ": off"; 346 } 347 else 348 { 349 sVF = NA; 350 } 321 351 322 352 initOverlayElement(&mRenderMethodInfo, ext, "RenderMethod", top, sRM); top += vert_space; … … 329 359 initOverlayElement(&mMovementInfo, ext, "Movement", top, sFM); top += vert_space; 330 360 initOverlayElement(&mTopCamInfo, ext, "TopCam", top, sTC); top += vert_space; 361 initOverlayElement(&mViewCellsInfo, ext, "ViewCells", top, sVC); top += vert_space; 362 initOverlayElement(&mViewFilterInfo, ext, "ViewFilter", top, sVF); top += vert_space; 331 363 332 364 OverlayElement *visPanel = OverlayManager::getSingleton(). … … 350 382 mKdTreeOverlay->hide(); 351 383 } 384 } 385 } 386 387 void KdTreeAppListener::toggleUseViewCells() 388 { 389 mUseViewCells = !mUseViewCells; 390 if (mSceneMgr->setOption("UseViewCells", &mUseViewCells)) 391 { 392 if (mUseViewCells) 393 mViewCellsInfo->setCaption(": on"); 394 else 395 mViewCellsInfo->setCaption(": off"); 396 } 397 else 398 { 399 mViewCellsInfo->setCaption(NA); 400 } 401 } 402 403 void KdTreeAppListener::toggleUseVisibilityFilter() 404 { 405 mUseVisibilityFilter = !mUseVisibilityFilter; 406 if (mSceneMgr->setOption("UseVisibilityFilter", &mUseVisibilityFilter)) 407 { 408 if (mUseVisibilityFilter) 409 mViewFilterInfo->setCaption(": on"); 410 else 411 mViewFilterInfo->setCaption(": off"); 412 } 413 else 414 { 415 mViewFilterInfo->setCaption(NA); 352 416 } 353 417 } … … 442 506 else 443 507 mEnhancedVisInfo->setCaption(": Simple"); 508 509 mOptions.mEnhancedVisibility = mode; 444 510 } 445 511 } … … 458 524 bm = (bm + 1) % KdTree::KDBM_SIZE; 459 525 if (mSceneMgr->setOption("BuildMethod", &bm)) 526 { 460 527 mBuildMethodInfo->setCaption(": " + BUILDMETHODCAPTION[bm]); 528 mOptions.mBuildMethod = bm; 529 } 461 530 } 462 531 else … … 474 543 rm = (rm + 1) % KdTree::KDRM_SIZE; 475 544 if (mSceneMgr->setOption("RenderMethod", &rm)) 545 { 476 546 mRenderMethodInfo->setCaption(": " + RENDERMETHODCAPTION[rm]); 547 mOptions.mRenderMethod = rm; 548 } 477 549 } 478 550 else … … 553 625 } 554 626 627 if (mInputDevice->isKeyDown(KC_F8) && mTimeUntilNextToggle <= 0) 628 { 629 // fill scene only once (for now), stop if anchor node exists 630 try 631 { 632 SceneNode *entnode = mSceneMgr->getSceneNode("AnchorNode"); 633 } 634 catch (Exception) 635 { 636 // read interesting params from config file 637 ConfigFile terrainconf; 638 std::stringstream s; 639 Real x,y,z; 640 641 terrainconf.load("terrain.cfg"); 642 643 s << terrainconf.getSetting("PageWorldX"); 644 s >> x; 645 s.clear(); 646 647 s << terrainconf.getSetting("MaxHeight"); 648 s >> y; 649 s.clear(); 650 651 s << terrainconf.getSetting("PageWorldZ"); 652 s >> z; 653 s.clear(); 654 655 mOptions.myApp->createTerrainScene(x, y * 0.3, z); 656 657 // rebuild tree 658 mSceneMgr->setOption("RebuildKdTree", 0); 659 } 660 661 mTimeUntilNextToggle = 0.5; 662 } 663 664 555 665 if (mInputDevice->isKeyDown(KC_F9) && mTimeUntilNextToggle <= 0) 556 666 { … … 571 681 } 572 682 573 if (mInputDevice->isKeyDown(KC_V) && mTimeUntilNextToggle <= 0) 574 { 575 toggleEnhancedVisibility(); 683 if (mInputDevice->isKeyDown(KC_C) && mTimeUntilNextToggle <= 0) 684 { 685 toggleUseViewCells(); 686 mTimeUntilNextToggle = 0.5; 687 } 688 689 if (mInputDevice->isKeyDown(KC_X) && mTimeUntilNextToggle <= 0) 690 { 691 toggleUseVisibilityFilter(); 576 692 mTimeUntilNextToggle = 0.5; 577 693 } … … 982 1098 if (!mFreeMove) 983 1099 { 984 if (mOptions.mScene Files == TERRAIN_SCENE)1100 if (mOptions.mSceneType == ST_TERRAIN) 985 1101 { 986 1102 static Vector3 pos; … … 1155 1271 { 1156 1272 saveLog(); 1157 return false; 1273 if (mOptions.mBurnIn) 1274 togglePlayback(); 1275 else 1276 return false; 1158 1277 } 1159 1278 } … … 1344 1463 mDemoStats.mEllapsedTime = 0.0f; 1345 1464 mDemoStats.mTotalEllapsedTime = 0.0f; 1465 mDemoFPS.clear(); 1346 1466 } 1347 1467 // stop playback … … 1597 1717 if (mOptions.mSceneManager == SM_KDT || mOptions.mSceneManager == SM_KTE) 1598 1718 { 1599 logwrite << ds << RENDERMETHOD[mOptions.mRenderMethod] << ds << mOptions.mMaxDepth << ds 1600 << mOptions.mKT << ds << mOptions.mKI; 1719 // info about enhanced visibility if internal rendering 1720 String senhvis; 1721 if (mOptions.mRenderMethod == KdTree::KDRM_INTERNAL) 1722 { 1723 if (mOptions.mEnhancedVisibility) 1724 senhvis = "E" + ds; 1725 else 1726 senhvis = "S" + ds; 1727 } 1728 1729 logwrite << ds << RENDERMETHOD[mOptions.mRenderMethod] << ds << senhvis << 1730 mOptions.mMaxDepth << ds << mOptions.mKT << ds << mOptions.mKI << ds << 1731 BUILDMETHOD[mOptions.mBuildMethod]; 1601 1732 } 1602 1733 else if (mOptions.mSceneManager == SM_OCM && mOptions.mRenderMethod != KdTree::KDRM_INTERNAL) 1603 1734 { 1604 logwrite << ds << RENDERMETHOD[ (mOptions.mRenderMethod+3)%3];1735 logwrite << ds << RENDERMETHOD[CONV_OCM_TO_KDT_ALG(mOptions.mRenderMethod)]; 1605 1736 } 1606 1737 logwrite << "\"" << fs;
Note: See TracChangeset
for help on using the changeset viewer.