From 1ef899069b3e1e0bd9d2d2c627b44ae48ed0fab0 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 4 Jan 2007 21:58:37 +0000 Subject: [PATCH] Changed compile paths into runtime selected paths using command line parameters --- examples/osgcamera/osgcamera.cpp | 40 ++++++++++++++------------------ 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/examples/osgcamera/osgcamera.cpp b/examples/osgcamera/osgcamera.cpp index 33f8a122b..773c7da11 100644 --- a/examples/osgcamera/osgcamera.cpp +++ b/examples/osgcamera/osgcamera.cpp @@ -144,6 +144,24 @@ int main( int argc, char **argv ) } } + osgViewer::Viewer viewer; + + while (arguments.read("-s")) { viewer.setThreadingModel(osgViewer::Viewer::SingleThreaded); } + while (arguments.read("-g")) { viewer.setThreadingModel(osgViewer::Viewer::ThreadPerContext); } + while (arguments.read("-c")) { viewer.setThreadingModel(osgViewer::Viewer::ThreadPerCamera); } + + bool limitNumberOfFrames = false; + unsigned int maxFrames = 10; + while (arguments.read("--run-till-frame-number",maxFrames)) { limitNumberOfFrames = true; } + + // alternative viewer window setups. + while (arguments.read("-1")) { singleWindowMultipleCameras(viewer); } + while (arguments.read("-2")) { multipleWindowMultipleCameras(viewer); } + + + if (apm.valid()) viewer.setCameraManipulator(apm.get()); + else viewer.setCameraManipulator( new osgGA::TrackballManipulator() ); + // load the scene. osg::ref_ptr loadedModel = osgDB::readNodeFiles(arguments); if (!loadedModel) @@ -152,33 +170,11 @@ int main( int argc, char **argv ) return 1; } - osgViewer::Viewer viewer; - - while (arguments.read("-s")) { viewer.setThreadingModel(osgViewer::Viewer::SingleThreaded); } - while (arguments.read("-g")) { viewer.setThreadingModel(osgViewer::Viewer::ThreadPerContext); } - while (arguments.read("-c")) { viewer.setThreadingModel(osgViewer::Viewer::ThreadPerCamera); } - -// viewer.setSceneData(loadedModel.get()); - - if (apm.valid()) viewer.setCameraManipulator(apm.get()); - else viewer.setCameraManipulator( new osgGA::TrackballManipulator() ); - -#if 1 - - // singleWindowMultipleCameras(viewer); - - multipleWindowMultipleCameras(viewer); - -#endif - viewer.setSceneData(loadedModel.get()); viewer.realize(); - bool limitNumberOfFrames = false; unsigned int numFrames = 0; - unsigned int maxFrames = 10; - while(!viewer.done() && !(limitNumberOfFrames && numFrames>=maxFrames)) { viewer.frame();