bool handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter&) { if (!unit || !dt || !intensity) return false; float i,t; intensity->get(i); dt->get(t); switch(ea.getEventType()) { case(osgGA::GUIEventAdapter::KEYDOWN): case(osgGA::GUIEventAdapter::KEYUP): { // iteration if (ea.getKey() == osgGA::GUIEventAdapter::KEY_F2) { unit->setNumIterations(unit->getNumIterations()+1); }else if (ea.getKey() == osgGA::GUIEventAdapter::KEY_F1) { unit->setNumIterations(unit->getNumIterations()-1); } // intenisty if (ea.getKey() == osgGA::GUIEventAdapter::KEY_F3) { intensity->set(i-0.1f); }else if (ea.getKey() == osgGA::GUIEventAdapter::KEY_F4) { intensity->set(i+0.1f); } // dt if (ea.getKey() == osgGA::GUIEventAdapter::KEY_F5) { dt->set(t-0.001f); }else if (ea.getKey() == osgGA::GUIEventAdapter::KEY_F6) { dt->set(t+0.001f); } break; } default: break; } return false; }