openscenegraph
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
osgGA::EventQueue Class Reference

#include <EventQueue>

Inheritance diagram for osgGA::EventQueue:
osg::Referenced

Public Types

typedef std::list< osg::ref_ptr< Event > > Events
 

Public Member Functions

 EventQueue (GUIEventAdapter::MouseYOrientation mouseYOrientation=GUIEventAdapter::Y_INCREASING_DOWNWARDS)
 
bool empty () const
 
void setEvents (Events &events)
 
bool takeEvents (Events &events)
 
bool takeEvents (Events &events, double cutOffTime)
 
bool copyEvents (Events &events) const
 
void appendEvents (Events &events)
 
void addEvent (Event *event)
 
void setUseFixedMouseInputRange (bool useFixedMouseInputRange)
 
bool getUseFixedMouseInputRange ()
 
void setGraphicsContext (osg::GraphicsContext *context)
 
osg::GraphicsContextgetGraphicsContext ()
 
const osg::GraphicsContextgetGraphicsContext () const
 
void syncWindowRectangleWithGraphicsContext ()
 
void setMouseInputRange (float xMin, float yMin, float xMax, float yMax)
 
osgGA::GUIEventAdapterwindowResize (int x, int y, int width, int height)
 
osgGA::GUIEventAdapterwindowResize (int x, int y, int width, int height, double time)
 
osgGA::GUIEventAdaptermouseScroll (GUIEventAdapter::ScrollingMotion sm)
 
osgGA::GUIEventAdaptermouseScroll (GUIEventAdapter::ScrollingMotion sm, double time)
 
osgGA::GUIEventAdaptermouseScroll2D (float x, float y)
 
osgGA::GUIEventAdaptermouseScroll2D (float x, float y, double time)
 
osgGA::GUIEventAdapterpenPressure (float pressure)
 
osgGA::GUIEventAdapterpenPressure (float pressure, double time)
 
osgGA::GUIEventAdapterpenOrientation (float tiltX, float tiltY, float rotation)
 
osgGA::GUIEventAdapterpenOrientation (float tiltX, float tiltY, float rotation, double time)
 
osgGA::GUIEventAdapterpenProximity (GUIEventAdapter::TabletPointerType pt, bool isEntering)
 
osgGA::GUIEventAdapterpenProximity (GUIEventAdapter::TabletPointerType pt, bool isEntering, double time)
 
void mouseWarped (float x, float y)
 
osgGA::GUIEventAdaptermouseMotion (float x, float y)
 
osgGA::GUIEventAdaptermouseMotion (float x, float y, double time)
 
osgGA::GUIEventAdaptermouseButtonPress (float x, float y, unsigned int button)
 
osgGA::GUIEventAdaptermouseButtonPress (float x, float y, unsigned int button, double time)
 
osgGA::GUIEventAdaptermouseDoubleButtonPress (float x, float y, unsigned int button)
 
osgGA::GUIEventAdaptermouseDoubleButtonPress (float x, float y, unsigned int button, double time)
 
osgGA::GUIEventAdaptermouseButtonRelease (float x, float y, unsigned int button)
 
osgGA::GUIEventAdaptermouseButtonRelease (float x, float y, unsigned int button, double time)
 
osgGA::GUIEventAdapterkeyPress (int key, int unmodifiedKey=0)
 
osgGA::GUIEventAdapterkeyPress (int key, double time, int unmodifiedKey=0)
 
osgGA::GUIEventAdapterkeyRelease (int key, int unmodifiedKey=0)
 
osgGA::GUIEventAdapterkeyRelease (int key, double time, int unmodifiedKey=0)
 
GUIEventAdaptertouchBegan (unsigned int id, GUIEventAdapter::TouchPhase phase, float x, float y, double time)
 
GUIEventAdaptertouchBegan (unsigned int id, GUIEventAdapter::TouchPhase phase, float x, float y)
 
GUIEventAdaptertouchMoved (unsigned int id, GUIEventAdapter::TouchPhase phase, float x, float y, double time)
 
GUIEventAdaptertouchMoved (unsigned int id, GUIEventAdapter::TouchPhase phase, float x, float y)
 
GUIEventAdaptertouchEnded (unsigned int id, GUIEventAdapter::TouchPhase phase, float x, float y, unsigned int tap_count, double time)
 
GUIEventAdaptertouchEnded (unsigned int id, GUIEventAdapter::TouchPhase phase, float x, float y, unsigned int tap_count)
 
osgGA::GUIEventAdaptercloseWindow ()
 
osgGA::GUIEventAdaptercloseWindow (double time)
 
osgGA::GUIEventAdapterquitApplication ()
 
osgGA::GUIEventAdapterquitApplication (double time)
 
osgGA::GUIEventAdapterframe (double time)
 
void setStartTick (osg::Timer_t tick)
 
osg::Timer_t getStartTick () const
 
double getTime () const
 
void clear ()
 
GUIEventAdaptercreateEvent ()
 
void setCurrentEventState (GUIEventAdapter *ea)
 
GUIEventAdaptergetCurrentEventState ()
 
const GUIEventAdaptergetCurrentEventState () const
 
GUIEventAdapteruserEvent (osg::Referenced *userEventData)
 
GUIEventAdapteruserEvent (osg::Referenced *userEventData, double time)
 
void setFirstTouchEmulatesMouse (bool b)
 
bool getFirstTouchEmulatesMouse () const
 
- Public Member Functions inherited from osg::Referenced
 Referenced ()
 
 Referenced (bool threadSafeRefUnref)
 
 Referenced (const Referenced &)
 
Referencedoperator= (const Referenced &)
 
virtual void setThreadSafeRefUnref (bool)
 
bool getThreadSafeRefUnref () const
 
OpenThreads::MutexgetRefMutex () const
 
int ref () const
 
int unref () const
 
int unref_nodelete () const
 
int referenceCount () const
 
ObserverSetgetObserverSet () const
 
ObserverSetgetOrCreateObserverSet () const
 
void addObserver (Observer *observer) const
 
void removeObserver (Observer *observer) const
 

Protected Member Functions

virtual ~EventQueue ()
 
EventQueueoperator= (const EventQueue &)
 
- Protected Member Functions inherited from osg::Referenced
virtual ~Referenced ()
 
void signalObserversAndDelete (bool signalDelete, bool doDelete) const
 
void deleteUsingDeleteHandler () const
 

Protected Attributes

osg::ref_ptr< GUIEventAdapter_accumulateEventState
 
bool _useFixedMouseInputRange
 
osg::Timer_t _startTick
 
OpenThreads::Mutex _eventQueueMutex
 
Events _eventQueue
 
bool _firstTouchEmulatesMouse
 
- Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr _observerSet
 
OpenThreads::Atomic _refCount
 

Additional Inherited Members

- Static Public Member Functions inherited from osg::Referenced
static OpenThreads::MutexgetGlobalReferencedMutex ()
 
static void setDeleteHandler (DeleteHandler *handler)
 
static DeleteHandlergetDeleteHandler ()
 

Detailed Description

EventQueue implementation for collecting and adapting windowing events

Member Typedef Documentation

◆ Events

Constructor & Destructor Documentation

◆ EventQueue()

osgGA::EventQueue::EventQueue ( GUIEventAdapter::MouseYOrientation  mouseYOrientation = GUIEventAdapter::Y_INCREASING_DOWNWARDS)

◆ ~EventQueue()

virtual osgGA::EventQueue::~EventQueue ( )
protectedvirtual

Member Function Documentation

◆ addEvent()

void osgGA::EventQueue::addEvent ( Event event)

Add an event to the end of the event queue.

◆ appendEvents()

void osgGA::EventQueue::appendEvents ( Events events)

Add events to end of event queue.

◆ clear()

void osgGA::EventQueue::clear ( )

clear all events from queue.

◆ closeWindow() [1/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::closeWindow ( )
inline

Method for adapting close window events.

◆ closeWindow() [2/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::closeWindow ( double  time)

Method for adapting close window event with specified event time.

◆ copyEvents()

bool osgGA::EventQueue::copyEvents ( Events events) const

Take a copy the entire event queue leaving the EventQueue' event queue intact.

◆ createEvent()

GUIEventAdapter * osgGA::EventQueue::createEvent ( )

convenience method for create an event ready to fill in. Clones the getCurrentEventState() to produce a up to date event state.

◆ empty()

bool osgGA::EventQueue::empty ( ) const
inline

◆ frame()

osgGA::GUIEventAdapter * osgGA::EventQueue::frame ( double  time)

Method for adapting frame events.

◆ getCurrentEventState() [1/2]

GUIEventAdapter * osgGA::EventQueue::getCurrentEventState ( )
inline

◆ getCurrentEventState() [2/2]

const GUIEventAdapter * osgGA::EventQueue::getCurrentEventState ( ) const
inline

◆ getFirstTouchEmulatesMouse()

bool osgGA::EventQueue::getFirstTouchEmulatesMouse ( ) const
inline

◆ getGraphicsContext() [1/2]

osg::GraphicsContext * osgGA::EventQueue::getGraphicsContext ( )
inline

◆ getGraphicsContext() [2/2]

const osg::GraphicsContext * osgGA::EventQueue::getGraphicsContext ( ) const
inline

◆ getStartTick()

osg::Timer_t osgGA::EventQueue::getStartTick ( ) const
inline

◆ getTime()

double osgGA::EventQueue::getTime ( ) const
inline

◆ getUseFixedMouseInputRange()

bool osgGA::EventQueue::getUseFixedMouseInputRange ( )
inline

Get whether the mouse coordinates should be transformed into a pre defined input range.

◆ keyPress() [1/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::keyPress ( int  key,
double  time,
int  unmodifiedKey = 0 
)

Method for adapting keyboard press events. Note, special keys such as Ctrl/Function keys should be adapted to GUIEventAdapter::KeySymbol mappings, with specified time.

◆ keyPress() [2/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::keyPress ( int  key,
int  unmodifiedKey = 0 
)
inline

Method for adapting keyboard press events. Note, special keys such as Ctrl/Function keys should be adapted to GUIEventAdapter::KeySymbol mappings.

◆ keyRelease() [1/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::keyRelease ( int  key,
double  time,
int  unmodifiedKey = 0 
)

Method for adapting keyboard press events. Note, special keys such as Ctrl/Function keys should be adapted to GUIEventAdapter::KeySymbol mappings, with specified time.

◆ keyRelease() [2/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::keyRelease ( int  key,
int  unmodifiedKey = 0 
)
inline

Method for adapting keyboard press events. Note, special keys such as Ctrl/Function keys should be adapted to GUIEventAdapter::KeySymbol mappings.

◆ mouseButtonPress() [1/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::mouseButtonPress ( float  x,
float  y,
unsigned int  button 
)
inline

Method for adapting mouse button pressed events, placing this event on the back of the event queue. Button numbering is 1 for left mouse button, 2 for middle, 3 for right.

◆ mouseButtonPress() [2/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::mouseButtonPress ( float  x,
float  y,
unsigned int  button,
double  time 
)

Method for adapting mouse button pressed events, placing this event on the back of the event queue, with specified time. Button numbering is 1 for left mouse button, 2 for middle, 3 for right.

◆ mouseButtonRelease() [1/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::mouseButtonRelease ( float  x,
float  y,
unsigned int  button 
)
inline

Method for adapting mouse button release events, placing this event on the back of the event queue. Button numbering is 1 for left mouse button, 2 for middle, 3 for right.

◆ mouseButtonRelease() [2/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::mouseButtonRelease ( float  x,
float  y,
unsigned int  button,
double  time 
)

Method for adapting mouse button release events, placing this event on the back of the event queue, with specified time. Button numbering is 1 for left mouse button, 2 for middle, 3 for right.

◆ mouseDoubleButtonPress() [1/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::mouseDoubleButtonPress ( float  x,
float  y,
unsigned int  button 
)
inline

Method for adapting mouse button pressed events, placing this event on the back of the event queue. Button numbering is 1 for left mouse button, 2 for middle, 3 for right.

◆ mouseDoubleButtonPress() [2/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::mouseDoubleButtonPress ( float  x,
float  y,
unsigned int  button,
double  time 
)

Method for adapting mouse button pressed events, placing this event on the back of the event queue, with specified time. Button numbering is 1 for left mouse button, 2 for middle, 3 for right.

◆ mouseMotion() [1/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::mouseMotion ( float  x,
float  y 
)
inline

Method for adapting mouse motion events, placing this event on the back of the event queue.

◆ mouseMotion() [2/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::mouseMotion ( float  x,
float  y,
double  time 
)

Method for adapting mouse motion events, placing this event on the back of the event queue, with specified time.

◆ mouseScroll() [1/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::mouseScroll ( GUIEventAdapter::ScrollingMotion  sm)
inline

Method for adapting mouse scroll wheel events, placing this event on the back of the event queue.

◆ mouseScroll() [2/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::mouseScroll ( GUIEventAdapter::ScrollingMotion  sm,
double  time 
)

Method for adapting mouse scroll wheel events, placing this event on the back of the event queue, with specified time.

◆ mouseScroll2D() [1/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::mouseScroll2D ( float  x,
float  y 
)
inline

Method for adapting mouse scroll wheel events, placing this event on the back of the event queue.

◆ mouseScroll2D() [2/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::mouseScroll2D ( float  x,
float  y,
double  time 
)

Method for adapting mouse scroll wheel events, placing this event on the back of the event queue.

◆ mouseWarped()

void osgGA::EventQueue::mouseWarped ( float  x,
float  y 
)

Method for updating in response to a mouse warp. Note, just moves the mouse position without creating a new event for it.

◆ operator=()

EventQueue & osgGA::EventQueue::operator= ( const EventQueue )
inlineprotected

Prevent unwanted copy operator.

◆ penOrientation() [1/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::penOrientation ( float  tiltX,
float  tiltY,
float  rotation 
)
inline

Method for adapting pen orientation events, placing this event on the back of the event queue.

◆ penOrientation() [2/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::penOrientation ( float  tiltX,
float  tiltY,
float  rotation,
double  time 
)

Method for adapting pen orientation events, placing this event on the back of the event queue, with specified time.

◆ penPressure() [1/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::penPressure ( float  pressure)
inline

Method for adapting pen pressure events, placing this event on the back of the event queue.

◆ penPressure() [2/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::penPressure ( float  pressure,
double  time 
)

Method for adapting pen pressure events, placing this event on the back of the event queue, with specified time.

◆ penProximity() [1/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::penProximity ( GUIEventAdapter::TabletPointerType  pt,
bool  isEntering 
)
inline

Method for adapting pen proximity events, placing this event on the back of the event queue.

◆ penProximity() [2/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::penProximity ( GUIEventAdapter::TabletPointerType  pt,
bool  isEntering,
double  time 
)

Method for adapting pen proximity events, placing this event on the back of the event queue, with specified time.

◆ quitApplication() [1/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::quitApplication ( )
inline

Method for adapting application quit events.

◆ quitApplication() [2/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::quitApplication ( double  time)

Method for adapting application quit events with specified event time.

◆ setCurrentEventState()

void osgGA::EventQueue::setCurrentEventState ( GUIEventAdapter ea)
inline

◆ setEvents()

void osgGA::EventQueue::setEvents ( Events events)

Set events.

◆ setFirstTouchEmulatesMouse()

void osgGA::EventQueue::setFirstTouchEmulatesMouse ( bool  b)
inline

◆ setGraphicsContext()

void osgGA::EventQueue::setGraphicsContext ( osg::GraphicsContext context)
inline

Set the graphics context associated with this event queue.

◆ setMouseInputRange()

void osgGA::EventQueue::setMouseInputRange ( float  xMin,
float  yMin,
float  xMax,
float  yMax 
)
inline

Set the mouse input range.

◆ setStartTick()

void osgGA::EventQueue::setStartTick ( osg::Timer_t  tick)
inline

◆ setUseFixedMouseInputRange()

void osgGA::EventQueue::setUseFixedMouseInputRange ( bool  useFixedMouseInputRange)
inline

Specify if mouse coordinates should be transformed into a pre defined input range, or whether they should be simply based on as local coordinates to the window that generated the mouse events.

◆ syncWindowRectangleWithGraphicsContext()

void osgGA::EventQueue::syncWindowRectangleWithGraphicsContext ( )

Read the window record dimensions from the graphics context.

◆ takeEvents() [1/2]

bool osgGA::EventQueue::takeEvents ( Events events)

Take the entire event queue leaving the EventQueue' event queue empty.

◆ takeEvents() [2/2]

bool osgGA::EventQueue::takeEvents ( Events events,
double  cutOffTime 
)

Take the events that were recorded before with specified time queue.

◆ touchBegan() [1/2]

GUIEventAdapter * osgGA::EventQueue::touchBegan ( unsigned int  id,
GUIEventAdapter::TouchPhase  phase,
float  x,
float  y 
)
inline

◆ touchBegan() [2/2]

GUIEventAdapter * osgGA::EventQueue::touchBegan ( unsigned int  id,
GUIEventAdapter::TouchPhase  phase,
float  x,
float  y,
double  time 
)

◆ touchEnded() [1/2]

GUIEventAdapter * osgGA::EventQueue::touchEnded ( unsigned int  id,
GUIEventAdapter::TouchPhase  phase,
float  x,
float  y,
unsigned int  tap_count 
)
inline

◆ touchEnded() [2/2]

GUIEventAdapter * osgGA::EventQueue::touchEnded ( unsigned int  id,
GUIEventAdapter::TouchPhase  phase,
float  x,
float  y,
unsigned int  tap_count,
double  time 
)

◆ touchMoved() [1/2]

GUIEventAdapter * osgGA::EventQueue::touchMoved ( unsigned int  id,
GUIEventAdapter::TouchPhase  phase,
float  x,
float  y 
)
inline

◆ touchMoved() [2/2]

GUIEventAdapter * osgGA::EventQueue::touchMoved ( unsigned int  id,
GUIEventAdapter::TouchPhase  phase,
float  x,
float  y,
double  time 
)

◆ userEvent() [1/2]

GUIEventAdapter * osgGA::EventQueue::userEvent ( osg::Referenced userEventData)
inline

Method for adapting user defined events

◆ userEvent() [2/2]

GUIEventAdapter * osgGA::EventQueue::userEvent ( osg::Referenced userEventData,
double  time 
)

Method for adapting user defined events with specified event time

◆ windowResize() [1/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::windowResize ( int  x,
int  y,
int  width,
int  height 
)
inline

Method for adapting window resize event, placing this event on the back of the event queue.

◆ windowResize() [2/2]

osgGA::GUIEventAdapter * osgGA::EventQueue::windowResize ( int  x,
int  y,
int  width,
int  height,
double  time 
)

Method for adapting window resize event, placing this event on the back of the event queue, with specified time.

Member Data Documentation

◆ _accumulateEventState

osg::ref_ptr<GUIEventAdapter> osgGA::EventQueue::_accumulateEventState
protected

◆ _eventQueue

Events osgGA::EventQueue::_eventQueue
protected

◆ _eventQueueMutex

OpenThreads::Mutex osgGA::EventQueue::_eventQueueMutex
mutableprotected

◆ _firstTouchEmulatesMouse

bool osgGA::EventQueue::_firstTouchEmulatesMouse
protected

◆ _startTick

osg::Timer_t osgGA::EventQueue::_startTick
protected

◆ _useFixedMouseInputRange

bool osgGA::EventQueue::_useFixedMouseInputRange
protected

The documentation for this class was generated from the following file: