| | 97 | class CompositeViewerFLTK : public osgViewer::CompositeViewer, public AdapterWidget |
| | 98 | { |
| | 99 | public: |
| | 100 | |
| | 101 | CompositeViewerFLTK(int x, int y, int w, int h, const char *label=0): |
| | 102 | AdapterWidget(x,y,w,h,label) |
| | 103 | { |
| | 104 | setThreadingModel(osgViewer::CompositeViewer::SingleThreaded); |
| | 105 | } |
| | 106 | |
| | 107 | protected: |
| | 108 | virtual void draw() { frame(); } |
| | 109 | |
| | 110 | }; |
| | 111 | |
| | 112 | |
| 118 | | viewerWindow.setSceneData(loadedModel.get()); |
| 119 | | viewerWindow.setCameraManipulator(new osgGA::TrackballManipulator); |
| 120 | | viewerWindow.addEventHandler(new osgViewer::StatsHandler); |
| 121 | | |
| 122 | | viewerWindow.show(); |
| 123 | | |
| 124 | | Fl::set_idle(idle_cb); |
| 125 | | |
| 126 | | return Fl::run(); |
| | 138 | CompositeViewerFLTK viewerWindow(100,100,width,height); |
| | 139 | viewerWindow.resizable(&viewerWindow); |
| | 140 | |
| | 141 | { |
| | 142 | osgViewer::View* view1 = new osgViewer::View; |
| | 143 | view1->getCamera()->setGraphicsContext(viewerWindow.getGraphicsWindow()); |
| | 144 | view1->getCamera()->setProjectionMatrixAsPerspective(30.0f, static_cast<double>(width)/static_cast<double>(height/2), 1.0, 1000.0); |
| | 145 | view1->getCamera()->setViewport(new osg::Viewport(0,0,width,height/2)); |
| | 146 | view1->setCameraManipulator(new osgGA::TrackballManipulator); |
| | 147 | view1->setSceneData(loadedModel.get()); |
| | 148 | |
| | 149 | viewerWindow.addView(view1); |
| | 150 | } |
| | 151 | |
| | 152 | { |
| | 153 | osgViewer::View* view2 = new osgViewer::View; |
| | 154 | view2->getCamera()->setGraphicsContext(viewerWindow.getGraphicsWindow()); |
| | 155 | view2->getCamera()->setProjectionMatrixAsPerspective(30.0f, static_cast<double>(width)/static_cast<double>(height/2), 1.0, 1000.0); |
| | 156 | view2->getCamera()->setViewport(new osg::Viewport(0,height/2,width,height/2)); |
| | 157 | view2->setCameraManipulator(new osgGA::TrackballManipulator); |
| | 158 | view2->setSceneData(loadedModel.get()); |
| | 159 | |
| | 160 | viewerWindow.addView(view2); |
| | 161 | } |
| | 162 | |
| | 163 | viewerWindow.show(); |
| | 164 | |
| | 165 | Fl::set_idle(idle_cb); |
| | 166 | |
| | 167 | return Fl::run(); |
| | 168 | } |
| | 169 | else |
| | 170 | { |
| | 171 | |
| | 172 | ViewerFLTK viewerWindow(100,100,800,600); |
| | 173 | viewerWindow.resizable(&viewerWindow); |
| | 174 | |
| | 175 | viewerWindow.setSceneData(loadedModel.get()); |
| | 176 | viewerWindow.setCameraManipulator(new osgGA::TrackballManipulator); |
| | 177 | viewerWindow.addEventHandler(new osgViewer::StatsHandler); |
| | 178 | |
| | 179 | viewerWindow.show(); |
| | 180 | |
| | 181 | Fl::set_idle(idle_cb); |
| | 182 | |
| | 183 | return Fl::run(); |
| | 184 | } |