/////////////////////////////////////////////////////////////////////////////// // Main entry point for GLUT based programs int main(int argc, char* argv[]) { // set directory gltSetWorkingDirectory(argv[0]); // initialize GLUT glutInit(&argc, argv); // create graphics windows with defaults createGraphicsWindow(); // Set up the Render Context // Internal context (state) for the graphics chips SetupRC(); // Main Loop, stays running // Processes, messages, keystrokes until window is closed glutMainLoop(); // Closes the rendering context before quitting, removes textures ShutdownRC(); return 0; }
void OSGViewWidget::stickViewIntoLayout(osg::ref_ptr<osgViewer::View> givenView){ view = givenView; addView(view); //set root and view for addViewWidget to invoke m_widget = addViewWidget(createGraphicsWindow(0, 0, 100, 100)); QGridLayout* grid = new QGridLayout; grid->addWidget( m_widget, 0, 0 ); setLayout( grid ); }
ViewerWidget(QWidget* parent = 0,Qt::WindowFlags f = 0,osgViewer::ViewerBase::ThreadingModel threadingModel=osgViewer::CompositeViewer::SingleThreaded): QWidget(parent,f) { setThreadingModel(threadingModel); // disable the default setting of viewer.done() by pressing Escape. setKeyEventSetsDone(0); osg::ref_ptr<osg::Node> line = createLine(osg::Vec3(-2,0,2),osg::Vec3(2,0,2)); osgSim::OverlayNode* overlayNode = new osgSim::OverlayNode( osgSim::OverlayNode::OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY); overlayNode->setContinuousUpdate(true); overlayNode->setOverlaySubgraph(line); overlayNode->setOverlayBaseHeight(0.99); osg::ref_ptr<osg::Node> cube = osgDB::readNodeFile("cube.osgb"); overlayNode->addChild(cube); osg::ref_ptr<osg::Group> root = new osg::Group; root->addChild(overlayNode); root->addChild(line); QWidget* widget1 = addViewWidget( createGraphicsWindow(0,0,100,100), osgDB::readRefNodeFile("cow.osgt") ); // QWidget* widget1 = addViewWidget(createGraphicsWindow(0,0,100,100),root); QWidget* widget2 = addViewWidget(createGraphicsWindow(0,0,100,100),osgDB::readRefNodeFile("glider.osgt")); QWidget* widget3 = addViewWidget(createGraphicsWindow(0,0,100,100),osgDB::readRefNodeFile("axes.osgt")); QWidget* widget4 = addViewWidget(createGraphicsWindow(0,0,100,100),osgDB::readRefNodeFile("fountain.osgt")); QWidget* popupWidget = addViewWidget(createGraphicsWindow(900,100,320,240,"Popup window",true),osgDB::readRefNodeFile("dumptruck.osgt")); popupWidget->show(); QGridLayout* grid = new QGridLayout; grid->addWidget(widget1,0,0); grid->addWidget(widget2,0,1); grid->addWidget(widget3,1,0); grid->addWidget(widget4,1,1); setLayout(grid); connect(&_timer,SIGNAL(timeout()),this,SLOT(update())); _timer.start(10); }
void OSGWidget3::initialize() { osgQt::GraphicsWindowQt* gw = createGraphicsWindow( x(), y(), width(), height() , "VISUAL" ); engine_ = CreateVisual(); osgViewer::Viewer* v = dynamic_cast<osgViewer::Viewer*>(engine_->GetViewer()); osgViewer::ViewerBase::Cameras cams_; v->getCameras(cams_,false); cams_[0]->setGraphicsContext( gw ); cams_[0]->setViewport(new osg::Viewport(0, 0, width(), height() )); // gw->setTouchEventsEnabled( true ); child_ = gw->getGLWidget(); layout()->addWidget(child_); }
GraphModelViewer::GraphModelViewer(osgViewer::ViewerBase::ThreadingModel threadingModel, QWidget *parent, bool autoUpdate) : QWidget(parent) { setThreadingModel(threadingModel); // disable the default setting of viewer.done() by pressing Escape. setKeyEventSetsDone(0); group = new osg::Group(); QWidget* widget1 = addViewWidget( createGraphicsWindow(0,0,100,100), group ); QGridLayout* grid = new QGridLayout; grid->addWidget(widget1, 0, 0 ); setLayout(grid); connect(&timer, SIGNAL(timeout()), this, SLOT(update())); if (autoUpdate) connect(&timer, SIGNAL(timeout()), this, SLOT(animateStep())); timer.start(10); }