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

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