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

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

added assumed visibility

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