1 /* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield 2 * 3 * This library is open source and may be redistributed and/or modified under 4 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or 5 * (at your option) any later version. The full license is in LICENSE file 6 * included with this distribution, and on the openscenegraph.org website. 7 * 8 * This library is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * OpenSceneGraph Public License for more details. 12 */ 13 #include <osgGA/EventVisitor> 14 15 #include <algorithm> 16 17 using namespace osg; 18 using namespace osgGA; 19 EventVisitor()20EventVisitor::EventVisitor() 21 : NodeVisitor(EVENT_VISITOR,TRAVERSE_ACTIVE_CHILDREN), 22 _handled(false) 23 { 24 } 25 26 ~EventVisitor()27EventVisitor::~EventVisitor() 28 { 29 } 30 addEvent(Event * event)31void EventVisitor::addEvent(Event* event) 32 { 33 _events.push_back(event); 34 } 35 removeEvent(Event * event)36void EventVisitor::removeEvent(Event* event) 37 { 38 EventQueue::Events::iterator itr = std::find(_events.begin(), _events.end(), event); 39 if (itr!=_events.end()) _events.erase(itr); 40 } 41 42 reset()43void EventVisitor::reset() 44 { 45 _events.clear(); 46 _handled = false; 47 } 48