Please discard the previous email in this thread, I had not properly tested the .osg fixes. Use this attachment instead. Thanks. -Paul
_____ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Paul Martz Sent: Wednesday, December 26, 2007 7:03 PM To: 'OpenSceneGraph Submissions' Subject: [osg-submissions] .osg fixes for OcclusionQueryNode Hi Robert -- Of course, while coding the .ive support, I realized I missed some stuff in the .osg support. The attached should fix it (in src/osgPlugins/osg). Okay, query ID deletion is next. Honest. Paul Martz Skew Matrix Software LLC http://www.skew-matrix.com <http://www.skew-matrix.com/> 303 859 9466
// // 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; }
_______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
