Ignore:
Timestamp:
08/30/06 15:10:48 (18 years ago)
Author:
szydlowski
Message:

view cells load/use implemented

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/App/Demos/Vis/KdTreeDemo/OGRE/src/TestKdTreeAppListener.cpp

    r1296 r1300  
    114114mShowTree(SHOWTREE_OFF), 
    115115// view cells 
     116mViewCellsLoaded(false), 
    116117mUseViewCells(false), 
    117118mUseVisibilityFilter(false), 
     
    167168        mCamNode = sm->getSceneNode("PlayerCamNode"); 
    168169 
    169         sm->getOption("UseViewCells", &mUseViewCells); 
    170         sm->getOption("UseVisibilityFilter", &mUseVisibilityFilter); 
    171  
    172170        mRaySceneQuery = mSceneMgr->createRayQuery(Ray(mCamNode->getPosition(), Vector3::NEGATIVE_UNIT_Y)); 
    173171 
     
    178176        mDemoTime = 0; 
    179177 
     178        // loading view cells overlay 
     179        mLoadingOverlay = OverlayManager::getSingleton().getByName("Example/Visibility/LoadingOverlay"); 
     180        mMyLoadingInfo = OverlayManager::getSingleton().getOverlayElement("Example/Visibility/Loading/MyLoadingInfo"); 
     181        mMyLoadingInfo->setCaption("loading view cells ..."); 
     182 
     183        mLoadingOverlay->hide(); 
     184 
    180185        initKdTreeOverlay(); 
    181186        initStatsOverlay(); 
     187 
     188        // set view cells 
     189        if (mOptions.mSceneType == ST_GEOMETRY) 
     190        { 
     191                switch(mOptions.mViewCells) 
     192                { 
     193                case VCM_ON: 
     194                        toggleUseViewCells(); 
     195                        break; 
     196                case VCM_FILTER: 
     197                        toggleUseViewCells(); 
     198                        toggleUseVisibilityFilter(); 
     199                        break; 
     200                } 
     201        } 
    182202 
    183203        if (!mOptions.mDemoInfileName.empty()) 
     
    326346                sTC = ": Free"; 
    327347 
    328         if (mSceneMgr->getOption("UseViewCells", &mUseViewCells)) 
     348        if (mSceneMgr->getOption("UseViewCells", &mUseViewCells) && mOptions.mSceneType == ST_GEOMETRY) 
    329349        { 
    330350                if (mUseViewCells) 
     
    335355        else 
    336356        { 
    337                 sVC = NA; 
    338         } 
    339  
    340         if (mSceneMgr->getOption("UseVisibilityFilter", &mUseVisibilityFilter)) 
     357                if (mOptions.mSceneType == ST_GEOMETRY && mOptions.myApp->getViewCellsFileName() != "" &&  
     358                        (mOptions.mSceneManager == SM_KDT ||  
     359                         mOptions.mSceneManager == SM_KTE ||  
     360                         mOptions.mSceneManager == SM_OCM)) 
     361                { 
     362                        sVC = ": off"; 
     363                } 
     364                else 
     365                { 
     366                        sVC = NA; 
     367                } 
     368        } 
     369 
     370        if (mSceneMgr->getOption("UseVisibilityFilter", &mUseVisibilityFilter) && mOptions.mSceneType == ST_GEOMETRY) 
    341371        { 
    342372                if (mUseVisibilityFilter) 
     
    347377        else 
    348378        { 
    349                 sVF = NA; 
     379                if (mOptions.mSceneType == ST_GEOMETRY && mOptions.myApp->getViewCellsFileName() != "" &&  
     380                        (mOptions.mSceneManager == SM_KDT ||  
     381                         mOptions.mSceneManager == SM_KTE ||  
     382                         mOptions.mSceneManager == SM_OCM)) 
     383                { 
     384                        sVF = ": off"; 
     385                } 
     386                else 
     387                { 
     388                        sVF = NA; 
     389                } 
    350390        } 
    351391 
     
    387427void KdTreeAppListener::toggleUseViewCells() 
    388428{ 
     429        // viewcells apply only for scenes loaded from geometry 
     430        if (mOptions.mSceneType != ST_GEOMETRY) 
     431                return; 
     432 
    389433        mUseViewCells = !mUseViewCells; 
     434 
     435 
     436        // load on demand 
     437        if (mUseViewCells && !mViewCellsLoaded) 
     438        { 
     439                mLoadingOverlay->show(); 
     440 
     441                // call once to load view cell loading overlay 
     442                mWindow->update(); 
     443                mViewCellsLoaded = mSceneMgr->setOption("LoadViewCells", mOptions.myApp->getViewCellsFileName().c_str()); 
     444 
     445                if (!mViewCellsLoaded) 
     446                { 
     447                        LogManager::getSingleton().logMessage("#@#@ Error: loading view cells from " +  
     448                                mOptions.myApp->getViewCellsFileName() + " failed."); 
     449                } 
     450 
     451                mLoadingOverlay->hide(); 
     452        } 
     453 
    390454        if (mSceneMgr->setOption("UseViewCells", &mUseViewCells)) 
    391455        { 
Note: See TracChangeset for help on using the changeset viewer.