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()20 EventVisitor::EventVisitor()
21 :    NodeVisitor(EVENT_VISITOR,TRAVERSE_ACTIVE_CHILDREN),
22     _handled(false)
23 {
24 }
25 
26 
~EventVisitor()27 EventVisitor::~EventVisitor()
28 {
29 }
30 
addEvent(Event * event)31 void EventVisitor::addEvent(Event* event)
32 {
33     _events.push_back(event);
34 }
35 
removeEvent(Event * event)36 void 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()43 void EventVisitor::reset()
44 {
45     _events.clear();
46     _handled = false;
47 }
48