- Timestamp:
- 01/08/07 11:00:16 (6 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/examples/osgoccluder/osgoccluder.cpp
r5636 r5927 1 #include <osg Producer/Viewer>1 #include <osgViewer/Viewer> 2 2 3 3 #include <osg/MatrixTransform> … … 24 24 #include <osg/ShapeDrawable> 25 25 26 #include <iostream> 26 27 27 28 class OccluderEventHandler : public osgGA::GUIEventHandler … … 29 30 public: 30 31 31 OccluderEventHandler(osg Producer::Viewer* viewer):_viewer(viewer) {}32 OccluderEventHandler(osgViewer::Viewer* viewer):_viewer(viewer) {} 32 33 33 34 virtual bool handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter&); … … 40 41 41 42 42 osg Producer::Viewer* _viewer;43 osgViewer::Viewer* _viewer; 43 44 osg::ref_ptr<osg::Group> _occluders; 44 45 osg::ref_ptr<osg::ConvexPlanarOccluder> _convexPlanarOccluder; … … 47 48 bool OccluderEventHandler::handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter&) 48 49 { 50 #if 0 49 51 switch(ea.getEventType()) 50 52 { … … 53 55 if (ea.getKey()=='a') 54 56 { 55 56 57 float x = ea.getXnormalized(); 57 58 float y = ea.getYnormalized(); … … 97 98 return false; 98 99 } 100 #else 101 osg::notify(osg::NOTICE)<<"Computre intersections not implemented yet."<<std::endl; 102 return false; 103 #endif 99 104 } 100 105 … … 285 290 286 291 // initialize the viewer. 287 osgProducer::Viewer viewer(arguments); 288 289 // set up the value with sensible default event handlers. 290 viewer.setUpViewer(osgProducer::Viewer::STANDARD_SETTINGS); 292 osgViewer::Viewer viewer; 291 293 292 294 bool manuallyCreateOccluders = false; … … 295 297 if (manuallyCreateOccluders) 296 298 { 297 viewer.getEventHandlerList().push_front(new OccluderEventHandler(&viewer)); 298 } 299 300 // get details on keyboard and mouse bindings used by the viewer. 301 viewer.getUsage(*arguments.getApplicationUsage()); 299 viewer.addEventHandler(new OccluderEventHandler(&viewer)); 300 } 302 301 303 302 // if user request help write it out to cout. … … 305 304 { 306 305 arguments.getApplicationUsage()->write(std::cout); 307 return 1;308 }309 310 // any option left unread are converted into errors to write out later.311 arguments.reportRemainingOptionsAsUnrecognized();312 313 // report any errors if they have occured when parsing the program aguments.314 if (arguments.errors())315 {316 arguments.writeErrorMessages(std::cout);317 306 return 1; 318 307 } … … 322 311 if (!loadedmodel) 323 312 { 313 osg::notify(osg::NOTICE)<<"Please sepecify and model filename on the command line."<<std::endl; 324 314 return 1; 325 315 } … … 346 336 viewer.setSceneData( rootnode.get() ); 347 337 348 349 // create the windows and run the threads. 350 viewer.realize(); 351 352 353 while( !viewer.done() ) 354 { 355 // wait for all cull and draw threads to complete. 356 viewer.sync(); 357 358 // update the scene by traversing it with the the update visitor which will 359 // call all node update callbacks and animations. 360 viewer.update(); 361 362 // fire off the cull and draw traversals of the scene. 363 viewer.frame(); 364 365 } 366 367 // wait for all cull and draw threads to complete. 368 viewer.sync(); 369 370 // run a clean up frame to delete all OpenGL objects. 371 viewer.cleanup_frame(); 372 373 // wait for all the clean up frame to complete. 374 viewer.sync(); 375 376 return 0; 338 return viewer.run(); 377 339 }
