コード例 #1
0
///////////////////////////////////////////////////////////////////////////////
// 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;
}
コード例 #2
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 );
}
コード例 #3
0
ファイル: overlaynode.cpp プロジェクト: studytools/osgstudy
  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);
  }
コード例 #4
0
ファイル: OSGWidget3.cpp プロジェクト: whztt07/test_osg
    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_);
        
    }
コード例 #5
0
ファイル: graphModelViewer.cpp プロジェクト: ljmanso/AGM
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);
}