// // 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 #include #include #include #include #include #include #include #include bool OQN_readLocalData( osg::Object &obj, osgDB::Input &fr ); bool OQN_writeLocalData( const osg::Object &obj, osgDB::Output &fw ); REGISTER_DOTOSGWRAPPER(OcclusionQueryNode) ( 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( 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( 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; }