source: trunk/VUT/Ogre/src/OgreVisibilityOptionsManager.cpp @ 87

Revision 87, 2.3 KB checked in by mattausch, 19 years ago (diff)
Line 
1#include "OgreVisibilityOptionsManager.h"
2
3namespace Ogre {
4//-----------------------------------------------------------------------
5VisibilityOptionsManager::VisibilityOptionsManager(GtpVisibility::VisibilityManager *visManager,
6                                                                                GtpVisibility::HierarchyInterface *hierarchyInterface):
7mVisibilityManager(visManager), mHierarchyInterface(hierarchyInterface)
8{
9}
10//-----------------------------------------------------------------------
11bool VisibilityOptionsManager::setOption( const String & key, const void * val )
12{
13        if( key == "Algorithm" )
14        {
15                mVisibilityManager->SetCullingManager(*static_cast<const
16                        GtpVisibility::VisibilityEnvironment::CullingManagerType *>(val));
17                return true;
18        }
19        if(key == "Threshold")
20        {
21                mVisibilityManager->SetVisibilityCullingThreshold(*static_cast<const int *>(val));
22                return true;
23        }
24        if (key == "UseOptimization")
25        {
26                mHierarchyInterface->SetUseOptimization(*static_cast<const bool *>(val));
27                return true;
28        }
29       
30        return false;
31}
32//-----------------------------------------------------------------------
33bool VisibilityOptionsManager::getOption( const String & key, void *val )
34{
35        if (key == "NumTraversedNodes")
36        {
37                * static_cast <unsigned int *>(val) =
38                        mHierarchyInterface->GetNumTraversedNodes();
39                return true;
40        }
41        if (key == "NumRenderedNodes")
42        {
43                * static_cast <unsigned int *>(val) =
44                        mHierarchyInterface->GetNumRenderedNodes();
45                return true;
46        }
47        if (key == "NumQueryCulledNodes")
48        {
49                * static_cast <unsigned int *>(val) =
50                        mVisibilityManager->GetCullingManager()->GetNumQueryCulledNodes();
51                return true;
52        }
53        if (key == "NumFrustumCulledNodes")
54        {
55                * static_cast<unsigned int *>(val) =
56                        mVisibilityManager->GetCullingManager()->GetNumFrustumCulledNodes();
57                return true;
58        }
59        if (key == "NumQueriesIssued")
60        {
61                * static_cast<unsigned int *>(val) =
62                        mVisibilityManager->GetCullingManager()->GetNumQueriesIssued();
63                return true;
64        }
65       
66        return false;
67}
68//-----------------------------------------------------------------------
69bool VisibilityOptionsManager::getOptionKeys( StringVector & refKeys )
70{
71        refKeys.push_back( "NumRenderedNodes" );
72        refKeys.push_back( "NumTraversedNodes" );
73        refKeys.push_back( "NumQueryCulledNodes" );
74        refKeys.push_back( "NumFrustumCulledNodes" );
75       
76        return true;
77}
78} // namespace Ogre
Note: See TracBrowser for help on using the repository browser.