Ignore:
Timestamp:
06/14/05 02:50:05 (19 years ago)
Author:
mattausch
Message:

added visibility queries

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/Ogre/src/OgreVisibilityTerrainSceneManager.cpp

    r129 r130  
    2424mDelayRenderTransparents(true), 
    2525mUseDepthPass(false), 
    26 mRenderItemBuffer(true), 
     26mRenderItemBuffer(false), 
    2727mCurrentEntityId(0) 
    2828{ 
    2929        mHierarchyInterface = new OctreeHierarchyInterface(this, mDestRenderSystem); 
    30  
     30        mQueryManager = new PlatformQueryManager(mHierarchyInterface, mCurrentViewport); 
     31 
     32        mVisibilityManager->SetQueryManager(mQueryManager); 
    3133        //mDisplayNodes = true; 
    3234        //mShowBoundingBoxes = true; 
     
    8789                mHierarchyInterface = NULL; 
    8890        } 
     91        if (mQueryManager) 
     92        { 
     93                delete mQueryManager; 
     94                mQueryManager = NULL; 
     95        } 
    8996} 
    9097//----------------------------------------------------------------------- 
    9198void VisibilityTerrainSceneManager::ShowVisualization(Camera *cam) 
    9299{ 
    93         LogManager::getSingleton().logMessage("***********VISUALIZATION************"); 
    94100        // add player camera for visualization purpose 
    95101        try  
     
    189195                setAmbientLight(ColourValue(1,1,1,1)); 
    190196        } 
    191  
    192         LogManager::getSingleton().logMessage("***********FIND OBJECTS************"); 
    193         getRenderQueue()->clear(); 
     197        //getRenderQueue()->clear(); 
    194198 
    195199        //-- show visible scene nodes and octree bounding boxes from last frame 
     
    221225void VisibilityTerrainSceneManager::_renderVisibleObjects() 
    222226{ 
    223         /* 
    224         std::stringstream d; 
    225         d << "Terrain render level: " << TerrainRenderable::getCurrentRenderLevelIndex(); 
    226         LogManager::getSingleton().logMessage(d.str()); 
    227  
    228227        // increase terrain renderlevel 
    229228        int renderLevel = TerrainRenderable::getCurrentRenderLevelIndex() + 1; 
     
    233232                renderLevel = 0; 
    234233        } 
    235 */ 
     234 
    236235        // visualization: apply standard rendering 
    237236        if (mShowVisualization) 
    238237        {        
    239238                TerrainSceneManager::_renderVisibleObjects(); 
    240         //      TerrainRenderable::setCurrentRenderLevelIndex(renderLevel); 
     239                TerrainRenderable::setCurrentRenderLevelIndex(renderLevel); 
    241240                return; 
    242241        } 
    243  
    244         LogManager::getSingleton().logMessage("***********RENDER OBJECTS************"); 
    245242 
    246243        InitDepthPass();        // create material for depth pass 
     
    309306        TerrainSceneManager::_renderVisibleObjects(); 
    310307 
    311         //TerrainRenderable::setCurrentRenderLevelIndex(renderLevel); 
     308        TerrainRenderable::setCurrentRenderLevelIndex(renderLevel); 
    312309        //WriteLog(); // write out stats 
    313310} 
     
    374371        // notifiy that frame has ended so terrain render level can be reset for correct 
    375372        // terrain rendering 
    376 /*      if (key == "TerrainLevelIdx") 
     373        if (key == "TerrainLevelIdx") 
    377374        { 
    378375                TerrainRenderable::setCurrentRenderLevelIndex((*static_cast<const int *>(val))); 
    379376                return true; 
    380         }*/ 
     377        } 
    381378        return VisibilityOptionsManager(mVisibilityManager, mHierarchyInterface). 
    382379                setOption(key, val) || TerrainSceneManager::setOption(key, val); 
     
    507504                                //<< ", renderable name: " << irend-> 
    508505                                RenderSingleObjectForItemBuffer(*irend, ipass->first); 
    509                                 RenderSingleObjectForOcclusionQuery( 
     506                                //RenderSingleObjectForOcclusionQuery( 
    510507                } 
    511508        } 
     
    562559        //LogManager::getSingleton().logMessage("has vertex program"); 
    563560        Pass *usedPass = setPass(mItemBufferPass);  
    564 //Pass *usedPass = setPass(pass); 
     561        //Pass *usedPass = setPass(pass); 
    565562        std::stringstream d; 
    566563        d << "item buffer id: " << rend->getId() << ", col: " << col; 
     
    571568} 
    572569//----------------------------------------------------------------------- 
    573 Entity* VisibilityTerrainSceneManager::createEntity(const String& entityName, const String& meshName) 
     570GtpVisibility::VisibilityManager *VisibilityTerrainSceneManager::GetVisibilityManager() 
     571{ 
     572        return mVisibilityManager; 
     573} 
     574//----------------------------------------------------------------------- 
     575Entity* VisibilityTerrainSceneManager::createEntity(const String& entityName,  
     576                                                                                                        const String& meshName) 
    574577{ 
    575578        Entity *ent = SceneManager::createEntity(entityName, meshName); 
    576579 
    577         for (int i = 0; i < ent->getNumSubEntities(); ++i) 
     580        for (int i = 0; i < (int)ent->getNumSubEntities(); ++i) 
    578581        { 
    579582                ent->getSubEntity(i)->setId(mCurrentEntityId ++); 
Note: See TracChangeset for help on using the changeset viewer.