Ignore:
Timestamp:
08/17/06 18:04:15 (18 years ago)
Author:
szydlowski
Message:

enhanced visibility (none/full/partial) implemented for internal culling

Location:
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/include/OgreKdTree.h

    r1206 r1211  
    2929#include <stack> 
    3030 
     31#include "OgreKdTreeCamera.h" 
    3132#include "HierarchyInterface.h" 
    3233 
     
    510511                inline bool getShowNodes(void) { return mShowNodes; }; 
    511512 
     513                // changes vis mode (simple/enhanced with NONE/PART/FULL vis) 
     514                void setEnhancedVis(bool enh); 
     515                bool getEnhancedVis(void); 
     516 
    512517                NodePtr getRoot(void) const { return mKdRoot; }; 
    513518 
     
    585590                bool mShowNodes; 
    586591 
     592                // pointer zur getVisibility function (simple oder enhanced) 
     593                KdTreeCamera::NodeVisibility (KdTreeCamera::*getVisibility)(const AxisAlignedBox& box) const; 
    587594 
    588595                // DEBUG 
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/include/OgreKdTreeSceneManager.h

    r1206 r1211  
    179179        /** Switches between simple & enhanced visibility 
    180180        */ 
    181         void setEnhancedVis(bool enhanced); 
     181        //void setEnhancedVis(bool enhanced); 
    182182 
    183183 
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreKdTree.cpp

    r1206 r1211  
    1212#include "OgreKdTreeSceneNode.h" 
    1313#include "OgreKdTreeSceneManager.h" 
    14 #include "OgreKdTreeCamera.h" 
    1514 
    1615#include <OgreStringConverter.h> 
     
    371370                        mBuildLog = LogManager::getSingleton().createLog(KDTREE_LOGNAME); 
    372371                } 
     372 
     373                setEnhancedVis(false); 
    373374        } 
    374375 
     
    12011202                //if (cam->isVisible(node->mAABB)) 
    12021203                if (fullVis ||  
    1203                         ((vis = cam->getVisibilityEnhanced(node->mAABB)) != KdTreeCamera::KDNV_NONE)) 
     1204                        ((vis = (cam->*getVisibility)(node->mAABB)) != KdTreeCamera::KDNV_NONE)) 
    12041205                        //((vis = (cam->*getVisibility)(node->mAABB)) != KdTreeCamera::KDNV_NONE)) 
    12051206                { 
     
    12191220        } 
    12201221 
    1221         ////------------------------------------------------------------------------- 
     1222        //------------------------------------------------------------------------- 
     1223        void KdTree::setEnhancedVis(bool enh) 
     1224        { 
     1225                if (enh) 
     1226                        getVisibility = &KdTreeCamera::getVisibilityEnhanced; 
     1227                else 
     1228                        getVisibility = &KdTreeCamera::getVisibilitySimple; 
     1229        } 
     1230 
     1231        //------------------------------------------------------------------------- 
     1232        bool KdTree::getEnhancedVis() 
     1233        { 
     1234                return getVisibility == &KdTreeCamera::getVisibilityEnhanced; 
     1235        } 
     1236 
     1237        //------------------------------------------------------------------------- 
    12221238        //void KdTree::findVisibleNodes(NodeList& visibleNodes, Camera * cam) 
    12231239        //{ 
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreKdTreeSceneManager.cpp

    r1206 r1211  
    8080} 
    8181 
    82 void KdTreeSceneManager::setEnhancedVis(bool enhanced) 
    83 { 
    84         for (CameraList::iterator it = mCameras.begin(); it != mCameras.end(); it ++) 
    85         { 
    86                 KDCAMPTR_CAST(it->second)->setEnhancedVisMode(enhanced); 
    87         } 
    88 } 
     82//void KdTreeSceneManager::setEnhancedVis(bool enhanced) 
     83//{ 
     84//      for (CameraList::iterator it = mCameras.begin(); it != mCameras.end(); it ++) 
     85//      { 
     86//              KDCAMPTR_CAST(it->second)->setEnhancedVisMode(enhanced); 
     87//      } 
     88//} 
    8989 
    9090bool KdTreeSceneManager::setOption(const String& strKey, const void* pValue) 
     
    146146        { 
    147147                bool enh = *static_cast<const bool *>(pValue); 
    148                 setEnhancedVis(enh); 
     148                if (mKdTree) 
     149                        mKdTree->setEnhancedVis(enh); 
     150                //setEnhancedVis(enh); 
    149151                return true; 
    150152        } 
     
    355357        else if (strKey == "EnhancedVisibility") 
    356358        { 
    357                 *static_cast<bool *>(pDestValue) =  
    358                         KDCAMPTR_CAST(mCameras.begin()->second)->getEnhancedVisMode(); 
     359                if (mKdTree) 
     360                        *static_cast<bool *>(pDestValue) = mKdTree->getEnhancedVis(); 
     361                        //KDCAMPTR_CAST(mCameras.begin()->second)->getEnhancedVisMode(); 
     362                else 
     363                        *static_cast<bool *>(pDestValue) = true; 
     364                return true; 
    359365        } 
    360366        else if (strKey == "BuildMethod") 
Note: See TracChangeset for help on using the changeset viewer.