#include "OgreVisibilityOptionsManager.h" namespace Ogre { //----------------------------------------------------------------------- VisibilityOptionsManager::VisibilityOptionsManager(GtpVisibility::VisibilityManager *visManager, GtpVisibility::HierarchyInterface *hierarchyInterface): mVisibilityManager(visManager), mHierarchyInterface(hierarchyInterface) { } //----------------------------------------------------------------------- bool VisibilityOptionsManager::setOption( const String & key, const void * val ) { if( key == "Algorithm" ) { mVisibilityManager->SetCullingManager(*static_cast(val)); return true; } if(key == "Threshold") { mVisibilityManager->SetVisibilityCullingThreshold(*static_cast(val)); return true; } return false; } //----------------------------------------------------------------------- bool VisibilityOptionsManager::getOption( const String & key, void *val ) { if (key == "NumTraversedNodes") { * static_cast (val) = mHierarchyInterface->GetNumTraversedNodes(); return true; } if (key == "NumRenderedNodes") { * static_cast (val) = mHierarchyInterface->GetNumRenderedNodes(); return true; } if (key == "NumQueryCulledNodes") { * static_cast (val) = mVisibilityManager->GetCullingManager()->GetNumQueryCulledNodes(); return true; } if (key == "NumFrustumCulledNodes") { * static_cast(val) = mVisibilityManager->GetCullingManager()->GetNumFrustumCulledNodes(); return true; } return false; } //----------------------------------------------------------------------- bool VisibilityOptionsManager::getOptionKeys( StringVector & refKeys ) { refKeys.push_back( "NumRenderedNodes" ); refKeys.push_back( "NumTraversedNodes" ); refKeys.push_back( "NumQueryCulledNodes" ); refKeys.push_back( "NumFrustumCulledNodes" ); return true; } } // namespace Ogre