📄 occlusionquerynode.cpp
字号:
//// Copyright (C) 2007 Skew Matrix Software LLC (http://www.skew-matrix.com)//// This library is open source and may be redistributed and/or modified under // the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or // (at your option) any later version. The full license is in LICENSE file// included with this distribution, and on the openscenegraph.org website.// // This library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // OpenSceneGraph Public License for more details.//#include <osg/OcclusionQueryNode>#include <iostream>#include <sstream>#include <string>#include <osg/io_utils>#include <osgDB/Registry>#include <osgDB/Input>#include <osgDB/Output>#include <osgDB/ParameterOutput>bool OQN_readLocalData( osg::Object &obj, osgDB::Input &fr );bool OQN_writeLocalData( const osg::Object &obj, osgDB::Output &fw );osgDB::RegisterDotOsgWrapperProxy OcclusionQueryNode_Proxy( new osg::OcclusionQueryNode, "OcclusionQueryNode", "Object Node OcclusionQueryNode Group", OQN_readLocalData, OQN_writeLocalData);bool OQN_readLocalData( osg::Object &obj, osgDB::Input &fr ){ osg::OcclusionQueryNode& oqn = static_cast<osg::OcclusionQueryNode&>( obj ); bool advanced( false ); int param; if (fr[0].matchWord( "QueriesEnabled" )) { bool enable( fr[1].getStr() == std::string("TRUE") ); oqn.setQueriesEnabled( enable ); fr+=2; advanced = true; } if (fr.matchSequence( "VisibilityThreshold %i" )) { fr[1].getInt( param ); oqn.setVisibilityThreshold( param ); fr+=2; advanced = true; } if (fr.matchSequence( "QueryFrameCount %i" )) { fr[1].getInt( param ); oqn.setQueryFrameCount( param ); fr+=2; advanced = true; } if (fr[0].matchWord( "DebugDisplay" )) { bool enable( fr[1].getStr() == std::string("TRUE") ); oqn.setDebugDisplay( enable ); fr+=2; advanced = true; } return advanced;}bool OQN_writeLocalData( const osg::Object &obj, osgDB::Output &fw ){ const osg::OcclusionQueryNode& oqn = static_cast<const osg::OcclusionQueryNode&>( obj ); //fw.writeObject( oqn.getOQN(i)); fw.indent() << "QueriesEnabled " << (oqn.getQueriesEnabled() ? "TRUE" : "FALSE") << std::endl; fw.indent() << "VisibilityThreshold " << oqn.getVisibilityThreshold() << std::endl; fw.indent() << "QueryFrameCount " << oqn.getQueryFrameCount() << std::endl; fw.indent() << "DebugDisplay " << (oqn.getDebugDisplay() ? "TRUE" : "FALSE") << std::endl; return true;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -