source: trunk/VUT/GtpVisibility/src/VisibilityManager.cpp @ 92

Revision 92, 2.4 KB checked in by mattausch, 19 years ago (diff)

exchanged halfbounding box with full bounding box

RevLine 
[59]1#include "VisibilityManager.h"
2#include "StopAndWaitCullingManager.h"
3#include "CoherentHierarchicalCullingManager.h"
4#include "FrustumCullingManager.h"
[65]5#include "DummyPreprocessingManager.h"
6#include "DummyQueryManager.h"
[59]7
8namespace GtpVisibility {
[74]9//-----------------------------------------------------------------------
10VisibilityManager::VisibilityManager(VisibilityEnvironment *visEnvironment):
11mVisibilityThreshold(0)
[59]12{
13        mVisibilityEnvironment = visEnvironment;
[74]14       
15        mCullingManagerType = VisibilityEnvironment::STOP_AND_WAIT_CULLING;
16        mCullingManager = new StopAndWaitCullingManager();
[65]17
18        mQueryManager = new DummyQueryManager(0);
19        mPreprocessingManager = new DummyPreprocessingManager(0);
[59]20}
[74]21//-----------------------------------------------------------------------
[59]22VisibilityManager::~VisibilityManager()
23{
24        delete mCullingManager;
25}
[74]26//-----------------------------------------------------------------------
27void VisibilityManager::SetCullingManager(
28        VisibilityEnvironment::CullingManagerType ocmType)
[59]29{
30        if (mCullingManagerType != ocmType)
31        {
[92]32                // delete old culling manager
[59]33                delete mCullingManager;
34
[92]35                mCullingManagerType = ocmType;
36               
[59]37                switch (ocmType)
38                {
[74]39                case VisibilityEnvironment::STOP_AND_WAIT_CULLING:
40                        mCullingManager = new StopAndWaitCullingManager();
[59]41                        break;
42
43                case VisibilityEnvironment::COHERENT_HIERARCHICAL_CULLING:
[74]44                        mCullingManager = new CoherentHierarchicalCullingManager();
[59]45                        break;
46
47                case VisibilityEnvironment::FRUSTUM_CULLING:
[74]48                        mCullingManager = new FrustumCullingManager();
[59]49                        break;
50                default:
[74]51                        mCullingManager = new StopAndWaitCullingManager();
[59]52                        break;
53                }
54        }
55}
[74]56//-----------------------------------------------------------------------
57void VisibilityManager::SetVisibilityCullingThreshold(unsigned int visibilityThreshold)
58{
59        mVisibilityThreshold = visibilityThreshold;
60        mCullingManager->SetVisibilityThreshold(mVisibilityThreshold);
61}
62//-----------------------------------------------------------------------
[59]63CullingManager *VisibilityManager::GetCullingManager()
64{
65        return mCullingManager;
66}
[74]67//-----------------------------------------------------------------------
[59]68void VisibilityManager::ApplyVisibilityCulling()
69{
70        mCullingManager->RenderScene();
71}
[92]72VisibilityEnvironment::CullingManagerType VisibilityManager::GetCullingManagerType()
73{
74        return mCullingManagerType;
75}
[74]76//-----------------------------------------------------------------------
[59]77} // namespace GtpVisibility
Note: See TracBrowser for help on using the repository browser.