root/OpenSceneGraph/trunk/include/osgGA/Device @ 13429

Revision 13429, 2.0 kB (checked in by robert, 12 hours ago)

From Jason Beverage, "It looks like the Callback header got accidentally removed from the CMakeLists.txt in the submission yesterday for the geometry instancing example."

Line 
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
14#ifndef OSGGA_EVENTSOURCE
15#define OSGGA_EVENTSOURCE 1
16
17#include <osgGA/EventQueue>
18
19namespace osgGA {
20
21/**
22 * Device base class from abstracting away from devices/windows that can generate events.
23 */
24class OSGGA_EXPORT Device : public osg::Object
25{
26    public:
27        enum {
28            UNKNOWN         = 0,
29            RECEIVE_EVENTS  = 1,
30            SEND_EVENTS     = 2
31        } Capabilities;
32       
33        Device();
34        Device(const Device& es, const osg::CopyOp& copyop);
35
36        META_Object(osgGA,Device);
37       
38        int getCapabilities() const { return _capabilities; }
39   
40        virtual bool checkEvents() { return _eventQueue.valid() ? !(getEventQueue()->empty()) : false; }
41        virtual void sendEvent(const GUIEventAdapter& ea);
42        virtual void sendEvents(const EventQueue::Events& events);
43
44        void setEventQueue(osgGA::EventQueue* eventQueue) { _eventQueue = eventQueue; }
45        osgGA::EventQueue* getEventQueue() { return _eventQueue.get(); }
46        const osgGA::EventQueue* getEventQueue() const { return _eventQueue.get(); }
47
48    protected:
49        void setCapabilities(int capabilities) { _capabilities = capabilities; }
50       
51        virtual ~Device();
52
53        /** Prevent unwanted copy operator.*/
54        Device& operator = (const Device&) { return *this; }
55
56        osg::ref_ptr<osgGA::EventQueue> _eventQueue;
57   
58    private:   
59        int _capabilities;
60       
61};
62
63}
64
65#endif
Note: See TracBrowser for help on using the browser.