Esempio n. 1
0
int main( int argc, char** argv )
{
    osg::ref_ptr<osg::Geode> geode = new osg::Geode;
    geode->addDrawable( createSimpleGeometry() );
    geode->getOrCreateStateSet()->setMode( GL_BLEND, osg::StateAttribute::ON );
    geode->getOrCreateStateSet()->setRenderingHint( osg::StateSet::TRANSPARENT_BIN );

    osg::ref_ptr<osg::Group> root = new osg::Group;
    root->addChild( geode.get() );

    osgViewer::Viewer viewer;
    viewer.addEventHandler( new SelectModelHandler );
    viewer.setSceneData( root.get() );
    return viewer.run();
}
Esempio n. 2
0
int main( int argc, char** argv )
{
    osg::ref_ptr<osg::Geode> geode = new osg::Geode;
    geode->addDrawable( createSimpleGeometry() );
    geode->getOrCreateStateSet()->setAttributeAndModes( new osg::PolygonOffset(1.0f, 1.0f) );
    
    osg::ref_ptr<osg::MatrixTransform> trans = new osg::MatrixTransform;
    trans->addChild( geode.get() );
    trans->setMatrix( osg::Matrix::translate(0.0f, 0.0f, 1.0f) );
    
    osg::ref_ptr<SelectModelHandler> selector = new SelectModelHandler;
    
    osg::ref_ptr<osg::Group> root = new osg::Group;
    root->addChild( trans.get() );
    root->addChild( selector->createFaceSelector() );  // Caution: It has bound, too
    
    osgViewer::Viewer viewer;
    viewer.addEventHandler( selector.get() );
    viewer.setSceneData( root.get() );
    return viewer.run();
}