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

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