Changeset 71
- Timestamp:
- Dec 20, 2004, 5:33:36 PM (20 years ago)
- Location:
- Swollen/swollen
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
Swollen/swollen/keyboardeventhandler.cpp
r68 r71 14 14 _prevtime = 0; 15 15 _togglewireframe = false; 16 _togglemanipulatormode = false; 16 17 } 17 18 … … 75 76 handled = true; 76 77 break; 78 79 case 'm': 80 _togglemanipulatormode = true; 81 handled = true; 82 break; 83 77 84 } 78 85 … … 119 126 120 127 128 bool KeyboardEventHandler::toggleManipulatorMode() 129 { 130 if( _togglemanipulatormode ) 131 { 132 _togglemanipulatormode = false; 133 return true; 134 } 135 return false; 136 } 137 138 -
Swollen/swollen/keyboardeventhandler.h
r66 r71 23 23 virtual bool timestepChanged(); 24 24 virtual bool toggleWireframe(); 25 virtual bool toggleManipulatorMode(); 25 26 virtual int getTimestep(){return (unsigned int) _timestep;} 26 27 virtual void setTime(float time); … … 29 30 int _direction, _timestep, _ntimesteps; 30 31 float _tps, _prevtime, _tpsorig; 31 bool _paused, _timestepchanged, _togglewireframe ;32 bool _paused, _timestepchanged, _togglewireframe, _togglemanipulatormode; 32 33 }; 33 34 -
Swollen/swollen/main.cpp
r70 r71 136 136 // Lighting 137 137 SpotLight* spotlight = new SpotLight(rootStateSet); 138 spotlight->setPosition( osg::Vec3( 1,0,1) ); // z is up138 spotlight->setPosition( osg::Vec3(0,1,0) ); // z is up 139 139 spotlight->setSpotAngle( 45.0 ); 140 140 … … 181 181 // initial camera position 182 182 CustomTrackballManipulator* trackball = viewer.getTrackball(); 183 viewer.getTrackball()->setNode( rootnode ); 184 viewer.getTrackball()->setAutoComputeHomePosition( false ); 185 viewer.getTrackball()->setHomePosition( 183 trackball->setNode( model ); 184 trackball->setAutoComputeHomePosition( false ); 185 trackball->setHomePosition( 186 osg::Vec3d(0,1,0), // location 187 osg::Vec3d(0,0,0), // target 188 osg::Vec3d(0,0,1) ); // up vector 189 trackball->moveToHome(); 190 trackball->disable(); 191 192 193 CustomTerrainManipulator* terrainmanipulator = viewer.getTerrainManipulator(); 194 terrainmanipulator->setNode( rootnode ); 195 terrainmanipulator->setAutoComputeHomePosition( false ); 196 terrainmanipulator->setHomePosition( 186 197 osg::Vec3d(0,-3,0), // camera location 187 198 osg::Vec3d(0,0,0), // camera target 188 199 osg::Vec3d(0,0,1) ); // camera up vector 189 viewer.getTrackball()->moveToHome(); 190 viewer.getTrackball()->disable(); 191 192 193 viewer.getTerrainManipulator()->setNode( rootnode ); 194 viewer.getTerrainManipulator()->setAutoComputeHomePosition( false ); 195 viewer.getTerrainManipulator()->setHomePosition( 196 osg::Vec3d(0,-3,0), // camera location 197 osg::Vec3d(0,0,0), // camera target 198 osg::Vec3d(0,0,1) ); // camera up vector 199 viewer.getTerrainManipulator()->moveToHome(); 200 viewer.getTerrainManipulator()->enable(); 200 terrainmanipulator->moveToHome(); 201 terrainmanipulator->enable(); 201 202 202 203 … … 204 205 while( !viewer.done() ) 205 206 { 207 206 208 // wait for all cull and draw threads to complete. 207 209 viewer.sync(); … … 220 222 221 223 // light position manipulator 222 if( viewer.getTrackball()->isEnabled() )224 if( trackball->isEnabled() ) 223 225 { 224 osg::Matrixd matrix = trackball->getInverseMatrix(); 225 //std::cout << matrix << std::endl; 226 //osg::Matrixd matrix = trackball->getInverseMatrix(); 227 osg::Matrixd matrix = trackball->getMatrix(); 228 osg::Vec3d position = matrix.getTrans(); 229 //std::cout << "trackball position x: " << position. << std::endl; 230 spotlight->setPosition( position ); 226 231 } 232 227 233 228 234 // events … … 230 236 water->toggleWireframe(); 231 237 232 // update the scene by traversing with the update visitor 238 // click-mouse movement can change either camera view or scene light position 239 if( event_handler->toggleManipulatorMode() ) 240 { 241 if( trackball->isEnabled() ) 242 { 243 trackball->disable(); 244 terrainmanipulator->enable(); 245 } 246 else 247 { 248 trackball->enable(); 249 terrainmanipulator->disable(); 250 } 251 } 252 253 254 // update the scene by traversing with the update visitor 233 255 viewer.update(); 234 256 -
Swollen/swollen/version.cpp
r70 r71 1 const char* version() { const char* s = "Revision: 69M"; return s; }1 const char* version() { const char* s = "Revision: 70M"; return s; }
Note: See TracChangeset
for help on using the changeset viewer.