Skip to content

Commit

Permalink
From Paul Martz, .osg support for OcclusionQueryNode
Browse files Browse the repository at this point in the history
  • Loading branch information
robertosfield committed Dec 21, 2007
1 parent 4889342 commit b052e18
Showing 1 changed file with 66 additions and 0 deletions.
66 changes: 66 additions & 0 deletions src/osgPlugins/osg/OcclusionQueryNode.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
//
// 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 <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 );

if (fr[0].matchWord( "QueriesEnabled" ))
{
bool enable( fr[1].getStr() == std::string("TRUE") );
oqn.setQueriesEnabled( 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;

return true;
}

0 comments on commit b052e18

Please sign in to comment.