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

Revision 100, 2.3 KB checked in by mattausch, 19 years ago (diff)

added visualization for octree culling
camera in terrainexample is now attached to camera node => can see correct camera
in visualization

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