- Timestamp:
- 11/28/08 15:36:39 (4 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/examples/osgwidgetwindow/osgwidgetwindow.cpp
r8867 r9289 43 43 44 44 return true; 45 } 46 }; 47 48 // This is the more "traditional" method of creating a callback. 49 struct CallbackObject: public osgWidget::Callback { 50 CallbackObject(osgWidget::EventType evType): 51 osgWidget::Callback(evType) { 52 } 53 54 virtual bool operator()(osgWidget::Event& ev) { 55 std::cout << "here" << std::endl; 56 57 return false; 45 58 } 46 59 }; … … 66 79 osgWidget::WindowManager::WM_USE_LUA | 67 80 osgWidget::WindowManager::WM_USE_PYTHON | 68 osgWidget::WindowManager::WM_PICK_DEBUG | 69 osgWidget::WindowManager::WM_NO_BETA_WARN 81 osgWidget::WindowManager::WM_PICK_DEBUG 70 82 ); 71 83 … … 82 94 static std::string data = "lol ur face!"; 83 95 84 box->addCallback(osgWidget::Callback(&windowClicked, osgWidget::EVENT_MOUSE_PUSH, &data)); 85 box->addCallback(osgWidget::Callback(&windowScrolled, osgWidget::EVENT_MOUSE_SCROLL)); 96 /* 97 box->addCallback(new osgWidget::Callback(&windowClicked, osgWidget::EVENT_MOUSE_PUSH, &data)); 98 box->addCallback(new osgWidget::Callback(&windowScrolled, osgWidget::EVENT_MOUSE_SCROLL)); 86 99 box->addCallback(osgWidget::Callback( 87 100 &Object::windowClicked, … … 89 102 osgWidget::EVENT_MOUSE_PUSH 90 103 )); 104 */ 105 106 box->addCallback(new CallbackObject(osgWidget::EVENT_MOUSE_PUSH)); 91 107 92 108 // Create some of our "testing" Widgets; included are two Widget subclasses I made … … 125 141 // to the WindowManager. This demonstrates the usages of OSG's ->clone() support, 126 142 // though that is abstracted by our META_UIObject macro. 127 osgWidget::Window* boxCopy = osg::clone(box, "newBox");143 osgWidget::Window* boxCopy = osg::clone(box, "newBox", osg::CopyOp::DEEP_COPY_ALL); 128 144 129 145 // Move our copy to make it visible. … … 145 161 // creation. 146 162 // std::cout << *box << std::endl << *boxCopy << std::endl; 147 148 // Add our event handler; is this better as a MatrixManipulator? Add a few other149 // helpful ViewerEventHandlers.150 viewer.addEventHandler(new osgWidget::MouseHandler(wm));151 viewer.addEventHandler(new osgWidget::KeyboardHandler(wm));152 viewer.addEventHandler(new osgViewer::StatsHandler());153 viewer.addEventHandler(new osgViewer::WindowSizeHandler());154 viewer.addEventHandler(new osgGA::StateSetManipulator(155 viewer.getCamera()->getOrCreateStateSet()156 ));157 163 158 164 // Setup our OSG objects for our scene; note the use of the utility function … … 163 169 // some of the other examples to see this in action... 164 170 osg::Group* group = new osg::Group(); 165 osg::Camera* camera = osgWidget::create InvertedYOrthoCamera(1280.0f, 1024.0f);171 osg::Camera* camera = osgWidget::createOrthoCamera(1280.0f, 1024.0f); 166 172 osg::Node* model = osgDB::readNodeFile("cow.osg"); 173 174 // Add our event handler; is this better as a MatrixManipulator? Add a few other 175 // helpful ViewerEventHandlers. 176 viewer.addEventHandler(new osgWidget::MouseHandler(wm)); 177 viewer.addEventHandler(new osgWidget::KeyboardHandler(wm)); 178 viewer.addEventHandler(new osgWidget::ResizeHandler(wm, camera)); 179 viewer.addEventHandler(new osgWidget::CameraSwitchHandler(wm, camera)); 180 viewer.addEventHandler(new osgViewer::StatsHandler()); 181 viewer.addEventHandler(new osgViewer::WindowSizeHandler()); 182 viewer.addEventHandler(new osgGA::StateSetManipulator( 183 viewer.getCamera()->getOrCreateStateSet() 184 )); 167 185 168 186 // Set our first non-UI node to be something other than the mask we created our
