Changeset 7909 for OpenSceneGraph/trunk/examples/osgpick/osgpick.cpp
- Timestamp:
- 03/04/08 15:19:03 (5 years ago)
- Files:
-
- 1 modified
-
OpenSceneGraph/trunk/examples/osgpick/osgpick.cpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/examples/osgpick/osgpick.cpp
r6941 r7909 25 25 #include <osgDB/ReadFile> 26 26 #include <osgViewer/Viewer> 27 #include <osgViewer/CompositeViewer> 27 28 28 29 #include <osg/Material> … … 50 51 bool handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter& aa); 51 52 52 virtual void pick(osgViewer::View er* viewer, const osgGA::GUIEventAdapter& ea);53 virtual void pick(osgViewer::View* view, const osgGA::GUIEventAdapter& ea); 53 54 54 55 void setLabel(const std::string& name) … … 66 67 switch(ea.getEventType()) 67 68 { 68 case(osgGA::GUIEventAdapter:: FRAME):69 case(osgGA::GUIEventAdapter::PUSH): 69 70 { 70 osgViewer::View er* viewer = dynamic_cast<osgViewer::Viewer*>(&aa);71 if (view er) pick(viewer,ea);71 osgViewer::View* view = dynamic_cast<osgViewer::View*>(&aa); 72 if (view) pick(view,ea); 72 73 return false; 73 74 } … … 77 78 } 78 79 79 void PickHandler::pick(osgViewer::View er* viewer, const osgGA::GUIEventAdapter& ea)80 void PickHandler::pick(osgViewer::View* view, const osgGA::GUIEventAdapter& ea) 80 81 { 81 82 osgUtil::LineSegmentIntersector::Intersections intersections; 82 83 83 84 std::string gdlist=""; 84 if (viewer->computeIntersections(ea.getX(),ea.getY(),intersections)) 85 float x = ea.getX(); 86 float y = ea.getY(); 87 if (view->computeIntersections(x,y,intersections)) 85 88 { 86 89 for(osgUtil::LineSegmentIntersector::Intersections::iterator hitr = intersections.begin(); … … 211 214 int main( int argc, char **argv ) 212 215 { 213 214 216 // use an ArgumentParser object to manage the program arguments. 215 217 osg::ArgumentParser arguments(&argc,argv); 216 217 // construct the viewer.218 osgViewer::Viewer viewer;219 218 220 219 // read the scene from the list of file specified commandline args. … … 236 235 group->addChild(createHUD(updateText.get())); 237 236 238 // add the handler for doing the picking 239 viewer.addEventHandler(new PickHandler(updateText.get())); 240 241 // set the scene to render 242 viewer.setSceneData(group.get()); 243 244 return viewer.run(); 245 } 237 if (arguments.read("--CompositeViewer")) 238 { 239 osg::ref_ptr<osgViewer::View> view = new osgViewer::View; 240 // add the handler for doing the picking 241 view->addEventHandler(new PickHandler(updateText.get())); 242 243 // set the scene to render 244 view->setSceneData(group.get()); 245 246 view->setUpViewAcrossAllScreens(); 247 248 osgViewer::CompositeViewer viewer; 249 viewer.addView(view.get()); 250 251 return viewer.run(); 252 253 } 254 else 255 { 256 osgViewer::Viewer viewer; 257 258 // add the handler for doing the picking 259 viewer.addEventHandler(new PickHandler(updateText.get())); 260 261 // set the scene to render 262 viewer.setSceneData(group.get()); 263 264 return viewer.run(); 265 } 266 267 }
