source: trunk/VUT/OcclusionCullingSceneManager/src/OgreOcclusionCullingSceneManager.cpp @ 37

Revision 37, 2.9 KB checked in by mattausch, 20 years ago (diff)
RevLine 
[12]1#include "OgreOcclusionCullingSceneManager.h"
2#include "OgreMath.h"
3#include "OgreIteratorWrappers.h"
[19]4#include "OgreRenderSystem.h"
5#include "OgreCamera.h"
[21]6#include "OgreHardwareOcclusionQuery.h"
[24]7//#include "OgreWireBoundingBox.h"
[26]8#include "OgreSolidHalfBoundingBox.h"
[21]9
[16]10#include <windows.h>
[12]11
12namespace Ogre {
13       
14        //-----------------------------------------------------------------------
[32]15        OcclusionCullingSceneManager::OcclusionCullingSceneManager()
16        {
[33]17                mOcclusionCullingSceneTraverser = new OcclusionCullingSceneTraverser(this, mDestRenderSystem);
[12]18        }
[22]19        //-----------------------------------------------------------------------
[33]20        OcclusionCullingSceneManager::~OcclusionCullingSceneManager()
21        {
22                delete mOcclusionCullingSceneTraverser;
23        }
24        //-----------------------------------------------------------------------
[32]25        void OcclusionCullingSceneManager::_findVisibleObjects( Camera* cam, bool onlyShadowCasters )
[19]26        {
[32]27                // empty because we have to find objects in _renderVisibleObjects
[19]28        }
[12]29        //-----------------------------------------------------------------------
[32]30        void OcclusionCullingSceneManager::_renderVisibleObjects( void )
[12]31        {
[33]32                mOcclusionCullingSceneTraverser->renderScene(mCameraInProgress, mSceneRoot);
[37]33                SceneManager::_renderVisibleObjects( );
[12]34        }
35        //-----------------------------------------------------------------------
[32]36        /*void OcclusionCullingSceneManager::renderZPass()
[19]37        {
38                traverseNode(mSceneRoot);
[32]39        }*/
[19]40        //-----------------------------------------------------------------------
[32]41        void OcclusionCullingSceneManager::_updateSceneGraph( Camera* cam )
[12]42        {
[33]43                mOcclusionCullingSceneTraverser->setNumSceneNodes(mSceneNodes.size());
[37]44                mOcclusionCullingSceneTraverser->setRenderSystem(mDestRenderSystem);
45
46        mOcclusionCullingSceneTraverser->preprocess();
[30]47               
[22]48                SceneManager::_updateSceneGraph(cam);
49        }
50        //-----------------------------------------------------------------------
[29]51        bool OcclusionCullingSceneManager::setOption( const String & key, const void * val )
[26]52        {
[33]53                mOcclusionCullingSceneTraverser->setOption(key, val);
[32]54                       
[29]55                return SceneManager::setOption( key, val );
[26]56        }
57        //-----------------------------------------------------------------------
[29]58        bool OcclusionCullingSceneManager::getOption( const String & key, void *val )
[26]59        {
[33]60                mOcclusionCullingSceneTraverser->getOption(key, val);
[32]61               
[29]62                return SceneManager::getOption( key, val );
[26]63        }
[29]64        //-----------------------------------------------------------------------
65        bool OcclusionCullingSceneManager::getOptionValues( const String & key, StringVector  &refValueList )
66        {
67                return SceneManager::getOptionValues( key, refValueList );
68        }
69        //-----------------------------------------------------------------------
70        bool OcclusionCullingSceneManager::getOptionKeys( StringVector & refKeys )
71        {
72                SceneManager::getOptionKeys( refKeys );
[32]73
[33]74                mOcclusionCullingSceneTraverser->getOptionKeys( refKeys );
75
[29]76                return true;
77        }
[12]78}       
Note: See TracBrowser for help on using the repository browser.