MainWindow
::MainWindow( osgViewer
::ViewerBase::ThreadingModel threadingModel
) : QMainWindow(){
setThreadingModel(threadingModel);
//QWidget* widget1 = addViewWidget( createCamera(0,0,100,100), osgDB::readNodeFile("/home/hallmw/Downloads/gwaldron-osgearth-6bc5b12/tests/boston.earth") );
// Read in the file and create our m_mapNode
osg::Node* node = osgDB::readNodeFile("Data/bmng.earth");
m_mapNode = MapNode::findMapNode(node);
// Create our widget to view our scene.
QWidget* widget1
= addViewWidget
( createCamera
(0,
0,
100,
100), node
);
infoLabel
= new QLabel("Right",
this);
infoLabel
->setFrameStyle
(QFrame::Panel|QFrame
::Sunken);
m_latlongStatus
= new QLabel("Middle",
this);
m_latlongStatus
->setFrameStyle
(QFrame::Panel|QFrame
::Sunken);
// Sets the central widget to the widget we created
setCentralWidget(widget1);
// Create our actions
createActions();
// Create our Menus
createMenus();
// Create the status bar
createStatusBar();
//updateStatusBar();
connect( &_timer, SIGNAL(timeout()), this, SLOT(update()) );
_timer.start( 10 );
}
QWidget* MainWindow
::addViewWidget( osg
::Camera* camera, osg
::Node* scene
) {
mouseUtil = new MouseCoordsUtility(m_mapNode, m_latlongStatus);
osgViewer::View* view = new osgViewer::View;
view->setCamera( camera );
addView(view);
view->setSceneData( scene );
view->addEventHandler( new osgViewer::StatsHandler );
view->addEventHandler(mouseUtil);
view->setCameraManipulator( new osgGA::TrackballManipulator );
osgQt::GraphicsWindowQt* gw = dynamic_cast<osgQt::GraphicsWindowQt*>( camera->getGraphicsContext() );
return gw ? gw->getGLWidget() : NULL;
}
// Creates the status bar for the application.
void MainWindow::createStatusBar()
{
statusBar()->addWidget(infoLabel,1);
statusBar()->addWidget(m_latlongStatus,2);
}