14 #ifndef OSGGA_EVENTQUEUE
15 #define OSGGA_EVENTQUEUE 1
17 #include <osgGA/GUIEventAdapter>
19 #include <osg/ref_ptr>
22 #include <OpenThreads/Mutex>
36 typedef std::list< osg::ref_ptr<Event> >
Events;
41 return _eventQueue.empty();
45 void setEvents(Events& events);
48 bool takeEvents(Events& events);
51 bool takeEvents(Events& events,
double cutOffTime);
54 bool copyEvents(Events& events)
const;
57 void appendEvents(Events& events);
60 void addEvent(
Event* event);
79 void syncWindowRectangleWithGraphicsContext();
83 void setMouseInputRange(
float xMin,
float yMin,
float xMax,
float yMax) { getCurrentEventState()->setInputRange(xMin, yMin, xMax, yMax); }
127 void mouseWarped(
float x,
float y);
179 return touchBegan(
id, phase, x, y, getTime());
184 return touchMoved(
id, phase, x, y, getTime());
189 return touchEnded(
id, phase, x, y, tap_count, getTime());
GUIEventAdapter * getCurrentEventState()
osgGA::GUIEventAdapter * mouseScroll(GUIEventAdapter::ScrollingMotion sm)
This class provides an object-oriented thread mutex interface.
osg::GraphicsContext * getGraphicsContext()
bool _useFixedMouseInputRange
osgGA::GUIEventAdapter * penOrientation(float tiltX, float tiltY, float rotation)
GUIEventAdapter * userEvent(osg::Referenced *userEventData)
void setGraphicsContext(osg::GraphicsContext *context)
void setStartTick(osg::Timer_t tick)
double delta_s(Timer_t t1, Timer_t t2) const
osgGA::GUIEventAdapter * mouseMotion(float x, float y)
OpenThreads::Mutex _eventQueueMutex
unsigned long long Timer_t
osgGA::GUIEventAdapter * mouseScroll2D(float x, float y)
std::list< osg::ref_ptr< Event > > Events
static Timer * instance()
osgGA::GUIEventAdapter * quitApplication()
GLint GLenum GLsizei width
osgGA::GUIEventAdapter * mouseDoubleButtonPress(float x, float y, unsigned int button)
bool getFirstTouchEmulatesMouse() const
void setUseFixedMouseInputRange(bool useFixedMouseInputRange)
osgGA::GUIEventAdapter * penPressure(float pressure)
osgGA::GUIEventAdapter * keyPress(int key, int unmodifiedKey=0)
void setCurrentEventState(GUIEventAdapter *ea)
osgGA::GUIEventAdapter * closeWindow()
osgGA::GUIEventAdapter * mouseButtonPress(float x, float y, unsigned int button)
osgGA::GUIEventAdapter * mouseButtonRelease(float x, float y, unsigned int button)
GLint GLenum GLsizei GLsizei height
osg::ref_ptr< GUIEventAdapter > _accumulateEventState
void setMouseInputRange(float xMin, float yMin, float xMax, float yMax)
GUIEventAdapter * touchMoved(unsigned int id, GUIEventAdapter::TouchPhase phase, float x, float y)
const osg::GraphicsContext * getGraphicsContext() const
osg::Timer_t getStartTick() const
GUIEventAdapter * touchBegan(unsigned int id, GUIEventAdapter::TouchPhase phase, float x, float y)
GUIEventAdapter * touchEnded(unsigned int id, GUIEventAdapter::TouchPhase phase, float x, float y, unsigned int tap_count)
const GUIEventAdapter * getCurrentEventState() const
void setFirstTouchEmulatesMouse(bool b)
bool _firstTouchEmulatesMouse
osgGA::GUIEventAdapter * windowResize(int x, int y, int width, int height)
bool getUseFixedMouseInputRange()
osgGA::GUIEventAdapter * keyRelease(int key, int unmodifiedKey=0)
osgGA::GUIEventAdapter * penProximity(GUIEventAdapter::TabletPointerType pt, bool isEntering)