OpenSceneGraph 3.6.5
GUIEventAdapter
Go to the documentation of this file.
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_GUIEVENTADAPTER
15#define OSGGA_GUIEVENTADAPTER 1
16
17#include <osg/Object>
18#include <osg/Matrix>
19#include <osg/GraphicsContext>
20
21#include <osgGA/Event>
22
23namespace osgGA{
24
26{
28 object(0),
29 x(0.0f),
30 xMin(-1.0f),
31 xMax(1.0f),
32 y(0.0f),
33 yMin(-1.0f),
34 yMax(1.0f) {}
35
36 PointerData(osg::Object* obj, float in_x, float in_xMin, float in_xMax, float in_y, float in_yMin, float in_yMax):
37 object(obj),
38 x(in_x),
39 xMin(in_xMin),
40 xMax(in_xMax),
41 y(in_y),
42 yMin(in_yMin),
43 yMax(in_yMax) {}
44
46 osg::Referenced(),
47 object(pd.object),
48 x(pd.x),
49 xMin(pd.xMin),
50 xMax(pd.xMax),
51 y(pd.y),
52 yMin(pd.yMin),
53 yMax(pd.yMax) {}
54
56 {
57 if (&pd==this) return *this;
58
59 object = pd.object;
60 x = pd.x;
61 xMin = pd.xMin;
62 xMax = pd.xMax;
63 y = pd.y;
64 yMin = pd.yMin;
65 yMax = pd.yMax;
66
67 return *this;
68 }
69
71 float x, xMin, xMax;
72 float y, yMin, yMax;
73
74 float getXnormalized() const { return (x-xMin)/(xMax-xMin)*2.0f-1.0f; }
75 float getYnormalized() const { return (y-yMin)/(yMax-yMin)*2.0f-1.0f; }
76};
77
78
82{
83public:
84
90
91 enum EventType {
92 NONE = 0,
93 PUSH = 1<<0,
94 RELEASE = 1<<1,
96 DRAG = 1<<3,
97 MOVE = 1<<4,
98 KEYDOWN = 1<<5,
99 KEYUP = 1<<6,
100 FRAME = 1<<7,
101 RESIZE = 1<<8,
102 SCROLL = 1<<9,
109 USER = 1<<16
110 };
111
113 {
114 KEY_Space = 0x20,
115
116 KEY_0 = '0',
117 KEY_1 = '1',
118 KEY_2 = '2',
119 KEY_3 = '3',
120 KEY_4 = '4',
121 KEY_5 = '5',
122 KEY_6 = '6',
123 KEY_7 = '7',
124 KEY_8 = '8',
125 KEY_9 = '9',
126 KEY_A = 'a',
127 KEY_B = 'b',
128 KEY_C = 'c',
129 KEY_D = 'd',
130 KEY_E = 'e',
131 KEY_F = 'f',
132 KEY_G = 'g',
133 KEY_H = 'h',
134 KEY_I = 'i',
135 KEY_J = 'j',
136 KEY_K = 'k',
137 KEY_L = 'l',
138 KEY_M = 'm',
139 KEY_N = 'n',
140 KEY_O = 'o',
141 KEY_P = 'p',
142 KEY_Q = 'q',
143 KEY_R = 'r',
144 KEY_S = 's',
145 KEY_T = 't',
146 KEY_U = 'u',
147 KEY_V = 'v',
148 KEY_W = 'w',
149 KEY_X = 'x',
150 KEY_Y = 'y',
151 KEY_Z = 'z',
152
155 KEY_Hash = 0x23,
158 KEY_Quote = 0x27,
162 KEY_Plus = 0x2B,
163 KEY_Comma = 0x2C,
164 KEY_Minus = 0x2D,
166 KEY_Slash = 0x2F,
167 KEY_Colon = 0x3A,
169 KEY_Less = 0x3C,
173 KEY_At = 0x40,
177 KEY_Caret = 0x5E,
180
181 KEY_BackSpace = 0xFF08, /* back space, back char */
182 KEY_Tab = 0xFF09,
183 KEY_Linefeed = 0xFF0A, /* Linefeed, LF */
184 KEY_Clear = 0xFF0B,
185 KEY_Return = 0xFF0D, /* Return, enter */
186 KEY_Pause = 0xFF13, /* Pause, hold */
188 KEY_Sys_Req = 0xFF15,
189 KEY_Escape = 0xFF1B,
190 KEY_Delete = 0xFFFF, /* Delete, rubout */
191
192
193 /* Cursor control & motion */
194
195 KEY_Home = 0xFF50,
196 KEY_Left = 0xFF51, /* Move left, left arrow */
197 KEY_Up = 0xFF52, /* Move up, up arrow */
198 KEY_Right = 0xFF53, /* Move right, right arrow */
199 KEY_Down = 0xFF54, /* Move down, down arrow */
200 KEY_Prior = 0xFF55, /* Prior, previous */
201 KEY_Page_Up = 0xFF55,
202 KEY_Next = 0xFF56, /* Next */
204 KEY_End = 0xFF57, /* EOL */
205 KEY_Begin = 0xFF58, /* BOL */
206
207
208 /* Misc Functions */
209
210 KEY_Select = 0xFF60, /* Select, mark */
211 KEY_Print = 0xFF61,
212 KEY_Execute = 0xFF62, /* Execute, run, do */
213 KEY_Insert = 0xFF63, /* Insert, insert here */
214 KEY_Undo = 0xFF65, /* Undo, oops */
215 KEY_Redo = 0xFF66, /* redo, again */
216 KEY_Menu = 0xFF67, /* On Windows, this is VK_APPS, the context-menu key */
217 KEY_Find = 0xFF68, /* Find, search */
218 KEY_Cancel = 0xFF69, /* Cancel, stop, abort, exit */
219 KEY_Help = 0xFF6A, /* Help */
220 KEY_Break = 0xFF6B,
221 KEY_Mode_switch = 0xFF7E, /* Character set switch */
222 KEY_Script_switch = 0xFF7E, /* Alias for mode_switch */
223 KEY_Num_Lock = 0xFF7F,
224
225 /* Keypad Functions, keypad numbers cleverly chosen to map to ascii */
226
227 KEY_KP_Space = 0xFF80, /* space */
228 KEY_KP_Tab = 0xFF89,
229 KEY_KP_Enter = 0xFF8D, /* enter */
230 KEY_KP_F1 = 0xFF91, /* PF1, KP_A, ... */
231 KEY_KP_F2 = 0xFF92,
232 KEY_KP_F3 = 0xFF93,
233 KEY_KP_F4 = 0xFF94,
234 KEY_KP_Home = 0xFF95,
235 KEY_KP_Left = 0xFF96,
236 KEY_KP_Up = 0xFF97,
237 KEY_KP_Right = 0xFF98,
238 KEY_KP_Down = 0xFF99,
239 KEY_KP_Prior = 0xFF9A,
241 KEY_KP_Next = 0xFF9B,
243 KEY_KP_End = 0xFF9C,
244 KEY_KP_Begin = 0xFF9D,
247 KEY_KP_Equal = 0xFFBD, /* equals */
249 KEY_KP_Add = 0xFFAB,
250 KEY_KP_Separator = 0xFFAC, /* separator, often comma */
254
255 KEY_KP_0 = 0xFFB0,
256 KEY_KP_1 = 0xFFB1,
257 KEY_KP_2 = 0xFFB2,
258 KEY_KP_3 = 0xFFB3,
259 KEY_KP_4 = 0xFFB4,
260 KEY_KP_5 = 0xFFB5,
261 KEY_KP_6 = 0xFFB6,
262 KEY_KP_7 = 0xFFB7,
263 KEY_KP_8 = 0xFFB8,
264 KEY_KP_9 = 0xFFB9,
265
266 /*
267 * Auxiliary Functions; note the duplicate definitions for left and right
268 * function keys; Sun keyboards and a few other manufactures have such
269 * function key groups on the left and/or right sides of the keyboard.
270 * We've not found a keyboard with more than 35 function keys total.
271 */
272
273 KEY_F1 = 0xFFBE,
274 KEY_F2 = 0xFFBF,
275 KEY_F3 = 0xFFC0,
276 KEY_F4 = 0xFFC1,
277 KEY_F5 = 0xFFC2,
278 KEY_F6 = 0xFFC3,
279 KEY_F7 = 0xFFC4,
280 KEY_F8 = 0xFFC5,
281 KEY_F9 = 0xFFC6,
282 KEY_F10 = 0xFFC7,
283 KEY_F11 = 0xFFC8,
284 KEY_F12 = 0xFFC9,
285 KEY_F13 = 0xFFCA,
286 KEY_F14 = 0xFFCB,
287 KEY_F15 = 0xFFCC,
288 KEY_F16 = 0xFFCD,
289 KEY_F17 = 0xFFCE,
290 KEY_F18 = 0xFFCF,
291 KEY_F19 = 0xFFD0,
292 KEY_F20 = 0xFFD1,
293 KEY_F21 = 0xFFD2,
294 KEY_F22 = 0xFFD3,
295 KEY_F23 = 0xFFD4,
296 KEY_F24 = 0xFFD5,
297 KEY_F25 = 0xFFD6,
298 KEY_F26 = 0xFFD7,
299 KEY_F27 = 0xFFD8,
300 KEY_F28 = 0xFFD9,
301 KEY_F29 = 0xFFDA,
302 KEY_F30 = 0xFFDB,
303 KEY_F31 = 0xFFDC,
304 KEY_F32 = 0xFFDD,
305 KEY_F33 = 0xFFDE,
306 KEY_F34 = 0xFFDF,
307 KEY_F35 = 0xFFE0,
308
309 /* Modifiers */
310
311 KEY_Shift_L = 0xFFE1, /* Left shift */
312 KEY_Shift_R = 0xFFE2, /* Right shift */
313 KEY_Control_L = 0xFFE3, /* Left control */
314 KEY_Control_R = 0xFFE4, /* Right control */
315 KEY_Caps_Lock = 0xFFE5, /* Caps lock */
316 KEY_Shift_Lock = 0xFFE6, /* Shift lock */
317
318 KEY_Meta_L = 0xFFE7, /* Left meta */
319 KEY_Meta_R = 0xFFE8, /* Right meta */
320 KEY_Alt_L = 0xFFE9, /* Left alt */
321 KEY_Alt_R = 0xFFEA, /* Right alt */
322 KEY_Super_L = 0xFFEB, /* Left super */
323 KEY_Super_R = 0xFFEC, /* Right super */
324 KEY_Hyper_L = 0xFFED, /* Left hyper */
325 KEY_Hyper_R = 0xFFEE /* Right hyper */
326 };
327
328
352
358
368
376
385
386 class TouchData : public osg::Object {
387 public:
388
389 struct TouchPoint {
390 unsigned int id;
392 float x, y;
393
394 unsigned int tapCount;
395 TouchPoint() : id(0), phase(TOUCH_UNKNOWN), x(0.0f), y(0.0f), tapCount(0) {}
396 TouchPoint(unsigned int in_id, TouchPhase in_phase, float in_x, float in_y, unsigned int in_tap_count)
397 : id(in_id),
398 phase(in_phase),
399 x(in_x),
400 y(in_y),
401 tapCount(in_tap_count)
402 {
403 }
404 };
405
406 typedef std::vector<TouchPoint> TouchSet;
407
408 typedef TouchSet::iterator iterator;
409 typedef TouchSet::const_iterator const_iterator;
410
412
413 TouchData(const TouchData& td, const osg::CopyOp& copyop):
414 osg::Object(td,copyop),
415 _touches(td._touches) {}
416
417
419
420
421 unsigned int getNumTouchPoints() const { return static_cast<unsigned int>(_touches.size()); }
422
423 iterator begin() { return _touches.begin(); }
424 const_iterator begin() const { return _touches.begin(); }
425
426 iterator end() { return _touches.end(); }
427 const_iterator end() const { return _touches.end(); }
428
429 const TouchPoint get(unsigned int i) const { return _touches[i]; }
430
431 protected:
432
433 virtual ~TouchData() {}
434
435 void addTouchPoint(unsigned int id, TouchPhase phase, float x, float y, unsigned int tap_count) {
436 _touches.push_back(TouchPoint(id, phase, x, y, tap_count));
437 }
438
440
441 friend class GUIEventAdapter;
442 };
443
444 public:
445
447
449
451
452 virtual GUIEventAdapter* asGUIEventAdapter() { return this; }
453 virtual const GUIEventAdapter* asGUIEventAdapter() const { return this; }
454
455
460
461
463 void setEventType(EventType Type) { _eventType = Type; }
464
466 virtual EventType getEventType() const { return _eventType; }
467
469 double time() const { return _time; }
470
471
474 const osg::GraphicsContext* getGraphicsContext() const { return _context.get(); }
475
476
478 void setWindowRectangle(int x, int y, int width, int height, bool updateMouseRange = true);
479
481 void setWindowX(int v) { _windowX = v; }
482
484 int getWindowX() const { return _windowX; }
485
487 void setWindowY(int v) { _windowY = v; }
488
490 int getWindowY() const { return _windowY; }
491
493 void setWindowWidth(int v) { _windowWidth = v; }
494
496 int getWindowWidth() const { return _windowWidth; }
497
499 void setWindowHeight(int v) { _windowHeight = v; }
500
502 int getWindowHeight() const { return _windowHeight; }
503
504
506 inline void setKey(int key) { _key = key; }
507
509 virtual int getKey() const { return _key; }
510
512 void setUnmodifiedKey(int key) { _unmodifiedKey = key; }
513
515 int getUnmodifiedKey() const { return _unmodifiedKey; }
516
518 void setButton(int button) { _button = button; }
519
521 int getButton() const { return _button; }
522
523
525 void setInputRange(float Xmin, float Ymin, float Xmax, float Ymax);
526
528 void setXmin(float v) { _Xmin = v; }
529
531 float getXmin() const { return _Xmin; }
532
534 void setXmax(float v) { _Xmax = v; }
535
537 float getXmax() const { return _Xmax; }
538
540 void setYmin(float v) { _Ymin = v; }
541
543 float getYmin() const { return _Ymin; }
544
546 void setYmax(float v) { _Ymax = v; }
547
549 float getYmax() const { return _Ymax; }
550
552 void setX(float x) { _mx = x; }
553
555 float getX() const { return _mx; }
556
558 void setY(float y) { _my = y; }
559
561 float getY() const { return _my; }
562
563#if 1
564 inline float getXnormalized() const
565 {
566 return _pointerDataList.size()>=1 ?
567 _pointerDataList[_pointerDataList.size()-1]->getXnormalized():
568 2.0f*(getX()-getXmin())/(getXmax()-getXmin())-1.0f;
569 }
570
571 inline float getYnormalized() const
572 {
573 if (_pointerDataList.size()>=1) return _pointerDataList[_pointerDataList.size()-1]->getYnormalized();
574 if (_mouseYOrientation==Y_INCREASING_UPWARDS) return 2.0f*(getY()-getYmin())/(getYmax()-getYmin())-1.0f;
575 else return -(2.0f*(getY()-getYmin())/(getYmax()-getYmin())-1.0f);
576 }
577#else
584 inline float getXnormalized() const { return 2.0f*(getX()-getXmin())/(getXmax()-getXmin())-1.0f; }
585
592 inline float getYnormalized() const
593 {
594 if (_mouseYOrientation==Y_INCREASING_UPWARDS) return 2.0f*(getY()-getYmin())/(getYmax()-getYmin())-1.0f;
595 else return -(2.0f*(getY()-getYmin())/(getYmax()-getYmin())-1.0f);
596 }
597#endif
598
601
604
607
609 void setButtonMask(int mask) { _buttonMask = mask; }
610
612 int getButtonMask() const { return _buttonMask; }
613
615 void setModKeyMask(int mask) { _modKeyMask = mask; }
616
618 int getModKeyMask() const { return _modKeyMask; }
619
621 void setScrollingMotion(ScrollingMotion motion) { _scrolling.motion = motion; }
622
625
627 void setScrollingMotionDelta(float x, float y) {
628 _scrolling.motion = SCROLL_2D;
629 _scrolling.deltaX = x;
630 _scrolling.deltaY = y;
631 }
632
634 void setScrollingDeltaX(float v) { _scrolling.deltaX = v; }
635
637 float getScrollingDeltaX() const { return _scrolling.deltaX; }
638
640 void setScrollingDeltaY(float v) { _scrolling.deltaY = v; }
641
643 float getScrollingDeltaY() const { return _scrolling.deltaY; }
644
645
647 void setPenPressure(float pressure) { _tabletPen.pressure = pressure; }
648
650 float getPenPressure() const { return _tabletPen.pressure; }
651
653 void setPenTiltX(float tiltX) { _tabletPen.tiltX = tiltX; }
654
656 float getPenTiltX() const { return _tabletPen.tiltX; }
657
659 void setPenTiltY(float tiltY) { _tabletPen.tiltY = tiltY; }
660
662 float getPenTiltY() const { return _tabletPen.tiltY; }
663
665 void setPenRotation(float rotation) { _tabletPen.rotation = rotation; }
666
668 float getPenRotation() const { return _tabletPen.rotation; }
669
671 void setTabletPointerType(TabletPointerType pt) { _tabletPen.tabletPointerType = pt; }
672
674 TabletPointerType getTabletPointerType() const { return _tabletPen.tabletPointerType; }
675
678
679 void addTouchPoint(unsigned int id, TouchPhase phase, float x, float y, unsigned int tapCount = 0);
680
682 TouchData* getTouchData() const { return _touchData.get(); }
683 bool isMultiTouchEvent() const { return (_touchData.valid()); }
684
685 inline float getTouchPointNormalizedX(unsigned int ndx) const {
686 return (getTouchData()->get(ndx).x-_Xmin)/(_Xmax-_Xmin)*2.0f-1.0f;
687 }
688
689 inline float getTouchPointNormalizedY(unsigned int ndx) const {
691 return (getTouchData()->get(ndx).y-_Ymin)/(_Ymax-_Ymin)*2.0f-1.0f;
692 else
693 return -((getTouchData()->get(ndx).y-_Ymin)/(_Ymax-_Ymin)*2.0f-1.0f);
694 }
695
696 typedef std::vector< osg::ref_ptr<PointerData> > PointerDataList;
700
701 unsigned int getNumPointerData() const { return static_cast<unsigned int>(_pointerDataList.size()); }
702 PointerData* getPointerData(unsigned int i) { return _pointerDataList[i].get(); }
703 const PointerData* getPointerData(unsigned int i) const { return _pointerDataList[i].get(); }
704
705 PointerData* getPointerData(osg::Object* obj) { for(unsigned int i=0;i<_pointerDataList.size(); ++i) { if (_pointerDataList[i]->object==obj) return _pointerDataList[i].get(); } return 0; }
706 const PointerData* getPointerData(osg::Object* obj) const { for(unsigned int i=0;i<_pointerDataList.size(); ++i) { if (_pointerDataList[i]->object==obj) return _pointerDataList[i].get(); } return 0; }
707 void addPointerData(PointerData* pd) { _pointerDataList.push_back(pd); }
708
710
711 protected:
712
715
717
723 int _key;
728 float _mx;
729 float _my;
733
743
755
757
758
760};
761
762}
763
764#endif
The core osg library provides the basic scene graph classes such as Nodes, State and Drawables,...
Definition AlphaFunc:19
Matrixd Matrix
Definition Matrix:27
The 'GA' in osgGA stands for 'GUI Abstraction'; the osgGA namespace provides facilities to help devel...
Definition Callback:21
Copy Op(erator) used to control whether shallow or deep copy is used during copy construction and clo...
Definition CopyOp:41
@ SHALLOW_COPY
Definition CopyOp:47
Base class for providing Windowing API agnostic access to creating and managing graphics context.
Definition GraphicsContext:30
Base class/standard interface for objects which require IO support, cloning and reference counting.
Definition Object:61
Object()
Construct an object.
Definition Object:69
Smart pointer for observed objects, that automatically set pointers to them to null when they are del...
Definition observer_ptr:39
Smart pointer for handling referenced counted objects.
Definition ref_ptr:32
Base class for providing reference counted objects.
Definition Referenced:44
double _time
Definition Event:56
Definition GUIEventAdapter:26
PointerData(osg::Object *obj, float in_x, float in_xMin, float in_xMax, float in_y, float in_yMin, float in_yMax)
Definition GUIEventAdapter:36
float xMax
Definition GUIEventAdapter:71
float xMin
Definition GUIEventAdapter:71
osg::observer_ptr< osg::Object > object
Definition GUIEventAdapter:70
float getYnormalized() const
Definition GUIEventAdapter:75
PointerData(const PointerData &pd)
Definition GUIEventAdapter:45
float getXnormalized() const
Definition GUIEventAdapter:74
float yMin
Definition GUIEventAdapter:72
float x
Definition GUIEventAdapter:71
float yMax
Definition GUIEventAdapter:72
PointerData()
Definition GUIEventAdapter:27
float y
Definition GUIEventAdapter:72
PointerData & operator=(const PointerData &pd)
Definition GUIEventAdapter:55
Event class for storing Keyboard, mouse and window events.
Definition GUIEventAdapter:82
void setXmax(float v)
set mouse maximum x.
Definition GUIEventAdapter:534
unsigned int getNumPointerData() const
Definition GUIEventAdapter:701
int getButton() const
button pressed/released, return -1 if inappropriate for this GUIEventAdapter.
Definition GUIEventAdapter:521
std::vector< osg::ref_ptr< PointerData > > PointerDataList
Definition GUIEventAdapter:696
void setWindowRectangle(int x, int y, int width, int height, bool updateMouseRange=true)
set window rectangle.
TouchData * getTouchData() const
Definition GUIEventAdapter:682
void setKey(int key)
set key pressed.
Definition GUIEventAdapter:506
const osg::Matrix getPenOrientation() const
set the orientation from a tablet input device as a matrix.
float _Ymax
Definition GUIEventAdapter:727
int _windowY
Definition GUIEventAdapter:720
int _windowWidth
Definition GUIEventAdapter:721
void setButton(int button)
set button pressed/released.
Definition GUIEventAdapter:518
int _buttonMask
Definition GUIEventAdapter:730
float getXmin() const
get mouse minimum x.
Definition GUIEventAdapter:531
MouseButtonMask
Definition GUIEventAdapter:85
@ RIGHT_MOUSE_BUTTON
Definition GUIEventAdapter:88
@ MIDDLE_MOUSE_BUTTON
Definition GUIEventAdapter:87
@ LEFT_MOUSE_BUTTON
Definition GUIEventAdapter:86
int getWindowX() const
get window x origin.
Definition GUIEventAdapter:484
const osg::GraphicsContext * getGraphicsContext() const
Definition GUIEventAdapter:474
int _windowHeight
Definition GUIEventAdapter:722
osg::ref_ptr< TouchData > _touchData
Definition GUIEventAdapter:756
float getScrollingDeltaX() const
get the scrolling x-delta.
Definition GUIEventAdapter:637
PointerData * getPointerData(unsigned int i)
Definition GUIEventAdapter:702
virtual GUIEventAdapter * asGUIEventAdapter()
Definition GUIEventAdapter:452
EventType _eventType
Definition GUIEventAdapter:716
bool isMultiTouchEvent() const
Definition GUIEventAdapter:683
void setWindowHeight(int v)
set window height.
Definition GUIEventAdapter:499
float getYmin() const
get mouse minimum y.
Definition GUIEventAdapter:543
float getPenRotation() const
get the tablet pen rotation around the Z-axis in degrees.
Definition GUIEventAdapter:668
void setUnmodifiedKey(int key)
set virtual key pressed.
Definition GUIEventAdapter:512
int getWindowY() const
get window y origin.
Definition GUIEventAdapter:490
void setWindowX(int v)
set window x origin.
Definition GUIEventAdapter:481
float getPenTiltY() const
get the tablet pen tiltY in degrees.
Definition GUIEventAdapter:662
void setScrollingMotion(ScrollingMotion motion)
set scrolling motion (for EventType::SCROLL).
Definition GUIEventAdapter:621
MouseYOrientation _mouseYOrientation
Definition GUIEventAdapter:732
int getModKeyMask() const
get modifier key mask.
Definition GUIEventAdapter:618
void setGraphicsContext(osg::GraphicsContext *context)
Definition GUIEventAdapter:472
void setTabletPointerType(TabletPointerType pt)
set the tablet pointer type.
Definition GUIEventAdapter:671
EventType
Definition GUIEventAdapter:91
@ PEN_PRESSURE
Definition GUIEventAdapter:103
@ PUSH
Definition GUIEventAdapter:93
@ KEYUP
Definition GUIEventAdapter:99
@ CLOSE_WINDOW
Definition GUIEventAdapter:107
@ MOVE
Definition GUIEventAdapter:97
@ DRAG
Definition GUIEventAdapter:96
@ NONE
Definition GUIEventAdapter:92
@ PEN_PROXIMITY_ENTER
Definition GUIEventAdapter:105
@ RESIZE
Definition GUIEventAdapter:101
@ USER
Definition GUIEventAdapter:109
@ PEN_PROXIMITY_LEAVE
Definition GUIEventAdapter:106
@ RELEASE
Definition GUIEventAdapter:94
@ KEYDOWN
Definition GUIEventAdapter:98
@ DOUBLECLICK
Definition GUIEventAdapter:95
@ SCROLL
Definition GUIEventAdapter:102
@ QUIT_APPLICATION
Definition GUIEventAdapter:108
@ PEN_ORIENTATION
Definition GUIEventAdapter:104
@ FRAME
Definition GUIEventAdapter:100
const PointerDataList & getPointerDataList() const
Definition GUIEventAdapter:699
int getWindowHeight() const
get window height.
Definition GUIEventAdapter:502
void setEventType(EventType Type)
set the event type.
Definition GUIEventAdapter:463
float _mx
Definition GUIEventAdapter:728
float getPenPressure() const
get the tablet pen pressure (range 0..1).
Definition GUIEventAdapter:650
int getWindowWidth() const
get window width.
Definition GUIEventAdapter:496
float _Xmax
Definition GUIEventAdapter:726
void setWindowWidth(int v)
set window width.
Definition GUIEventAdapter:493
MouseYOrientation getMouseYOrientation() const
get mouse-Y orientation (mouse-Y increases upwards or downwards).
Definition GUIEventAdapter:603
static osg::ref_ptr< GUIEventAdapter > & getAccumulatedEventState()
Get the accumulated event state singleton.
void setPenRotation(float rotation)
set the tablet pen rotation around the Z-axis in degrees.
Definition GUIEventAdapter:665
virtual const GUIEventAdapter * asGUIEventAdapter() const
Definition GUIEventAdapter:453
TabletPointerType getTabletPointerType() const
get the tablet pointer type.
Definition GUIEventAdapter:674
int getButtonMask() const
get current mouse button state.
Definition GUIEventAdapter:612
ScrollingMotion
Definition GUIEventAdapter:360
@ SCROLL_DOWN
Definition GUIEventAdapter:365
@ SCROLL_2D
Definition GUIEventAdapter:366
@ SCROLL_LEFT
Definition GUIEventAdapter:362
@ SCROLL_NONE
Definition GUIEventAdapter:361
@ SCROLL_RIGHT
Definition GUIEventAdapter:363
@ SCROLL_UP
Definition GUIEventAdapter:364
float getX() const
get current mouse x position.
Definition GUIEventAdapter:555
PointerDataList _pointerDataList
Definition GUIEventAdapter:759
int getUnmodifiedKey() const
get virtual key pressed.
Definition GUIEventAdapter:515
TabletPen _tabletPen
Definition GUIEventAdapter:754
void setXmin(float v)
set mouse minimum x.
Definition GUIEventAdapter:528
int _key
Definition GUIEventAdapter:723
virtual EventType getEventType() const
get the event type.
Definition GUIEventAdapter:466
void setYmax(float v)
set mouse maximum y.
Definition GUIEventAdapter:546
float _Ymin
Definition GUIEventAdapter:727
void setPenTiltX(float tiltX)
set the tablet pen tiltX in degrees.
Definition GUIEventAdapter:653
MouseYOrientation
Definition GUIEventAdapter:354
@ Y_INCREASING_UPWARDS
Definition GUIEventAdapter:355
@ Y_INCREASING_DOWNWARDS
Definition GUIEventAdapter:356
void setWindowY(int v)
set window x origin.
Definition GUIEventAdapter:487
ModKeyMask
Definition GUIEventAdapter:330
@ MODKEY_LEFT_META
Definition GUIEventAdapter:337
@ MODKEY_LEFT_ALT
Definition GUIEventAdapter:335
@ MODKEY_RIGHT_ALT
Definition GUIEventAdapter:336
@ MODKEY_LEFT_SUPER
Definition GUIEventAdapter:339
@ MODKEY_SHIFT
Definition GUIEventAdapter:346
@ MODKEY_RIGHT_HYPER
Definition GUIEventAdapter:342
@ MODKEY_HYPER
Definition GUIEventAdapter:350
@ MODKEY_LEFT_SHIFT
Definition GUIEventAdapter:331
@ MODKEY_RIGHT_SUPER
Definition GUIEventAdapter:340
@ MODKEY_RIGHT_META
Definition GUIEventAdapter:338
@ MODKEY_RIGHT_CTRL
Definition GUIEventAdapter:334
@ MODKEY_RIGHT_SHIFT
Definition GUIEventAdapter:332
@ MODKEY_CAPS_LOCK
Definition GUIEventAdapter:344
@ MODKEY_NUM_LOCK
Definition GUIEventAdapter:343
@ MODKEY_CTRL
Definition GUIEventAdapter:345
@ MODKEY_META
Definition GUIEventAdapter:348
@ MODKEY_LEFT_HYPER
Definition GUIEventAdapter:341
@ MODKEY_ALT
Definition GUIEventAdapter:347
@ MODKEY_SUPER
Definition GUIEventAdapter:349
@ MODKEY_LEFT_CTRL
Definition GUIEventAdapter:333
ScrollingMotion getScrollingMotion() const
get scrolling motion (for EventType::SCROLL).
Definition GUIEventAdapter:624
float _my
Definition GUIEventAdapter:729
void copyPointerDataFrom(const osgGA::GUIEventAdapter &sourceEvent)
const PointerData * getPointerData(unsigned int i) const
Definition GUIEventAdapter:703
float getPenTiltX() const
get the tablet pen tiltX in degrees.
Definition GUIEventAdapter:656
void setModKeyMask(int mask)
set modifier key mask.
Definition GUIEventAdapter:615
const PointerData * getPointerData(osg::Object *obj) const
Definition GUIEventAdapter:706
float getXnormalized() const
Definition GUIEventAdapter:564
float getXmax() const
get mouse maximum x.
Definition GUIEventAdapter:537
PointerData * getPointerData(osg::Object *obj)
Definition GUIEventAdapter:705
int _unmodifiedKey
Definition GUIEventAdapter:724
osg::GraphicsContext * getGraphicsContext()
Definition GUIEventAdapter:473
virtual int getKey() const
get key pressed, return -1 if inappropriate for this GUIEventAdapter.
Definition GUIEventAdapter:509
float getScrollingDeltaY() const
get the scrolling y-delta.
Definition GUIEventAdapter:643
void setPenTiltY(float tiltY)
set the tablet pen tiltY in degrees.
Definition GUIEventAdapter:659
float getY() const
get current mouse y position.
Definition GUIEventAdapter:561
void setScrollingMotionDelta(float x, float y)
set the scrolling delta to x,y and the scrolling motion to SCROLL_2D.
Definition GUIEventAdapter:627
void setPenPressure(float pressure)
set the tablet pen pressure (range 0..1).
Definition GUIEventAdapter:647
void setPointerDataList(const PointerDataList &pdl)
Definition GUIEventAdapter:697
float getTouchPointNormalizedY(unsigned int ndx) const
Definition GUIEventAdapter:689
KeySymbol
Definition GUIEventAdapter:113
@ KEY_Execute
Definition GUIEventAdapter:212
@ KEY_KP_Space
Definition GUIEventAdapter:227
@ KEY_KP_Decimal
Definition GUIEventAdapter:252
@ KEY_KP_8
Definition GUIEventAdapter:263
@ KEY_F9
Definition GUIEventAdapter:281
@ KEY_KP_Tab
Definition GUIEventAdapter:228
@ KEY_Colon
Definition GUIEventAdapter:167
@ KEY_G
Definition GUIEventAdapter:132
@ KEY_Find
Definition GUIEventAdapter:217
@ KEY_F6
Definition GUIEventAdapter:278
@ KEY_KP_F4
Definition GUIEventAdapter:233
@ KEY_H
Definition GUIEventAdapter:133
@ KEY_F34
Definition GUIEventAdapter:306
@ KEY_Prior
Definition GUIEventAdapter:200
@ KEY_Backslash
Definition GUIEventAdapter:175
@ KEY_KP_4
Definition GUIEventAdapter:259
@ KEY_Scroll_Lock
Definition GUIEventAdapter:187
@ KEY_Print
Definition GUIEventAdapter:211
@ KEY_D
Definition GUIEventAdapter:129
@ KEY_Z
Definition GUIEventAdapter:151
@ KEY_KP_Page_Up
Definition GUIEventAdapter:240
@ KEY_KP_Separator
Definition GUIEventAdapter:250
@ KEY_Redo
Definition GUIEventAdapter:215
@ KEY_KP_Left
Definition GUIEventAdapter:235
@ KEY_F23
Definition GUIEventAdapter:295
@ KEY_B
Definition GUIEventAdapter:127
@ KEY_Help
Definition GUIEventAdapter:219
@ KEY_F22
Definition GUIEventAdapter:294
@ KEY_F10
Definition GUIEventAdapter:282
@ KEY_F26
Definition GUIEventAdapter:298
@ KEY_KP_1
Definition GUIEventAdapter:256
@ KEY_KP_Equal
Definition GUIEventAdapter:247
@ KEY_KP_Begin
Definition GUIEventAdapter:244
@ KEY_KP_Right
Definition GUIEventAdapter:237
@ KEY_Page_Up
Definition GUIEventAdapter:201
@ KEY_Select
Definition GUIEventAdapter:210
@ KEY_Caret
Definition GUIEventAdapter:177
@ KEY_F18
Definition GUIEventAdapter:290
@ KEY_Super_R
Definition GUIEventAdapter:323
@ KEY_Plus
Definition GUIEventAdapter:162
@ KEY_End
Definition GUIEventAdapter:204
@ KEY_8
Definition GUIEventAdapter:124
@ KEY_U
Definition GUIEventAdapter:146
@ KEY_2
Definition GUIEventAdapter:118
@ KEY_Page_Down
Definition GUIEventAdapter:203
@ KEY_Semicolon
Definition GUIEventAdapter:168
@ KEY_W
Definition GUIEventAdapter:148
@ KEY_F4
Definition GUIEventAdapter:276
@ KEY_Quote
Definition GUIEventAdapter:158
@ KEY_Clear
Definition GUIEventAdapter:184
@ KEY_KP_F2
Definition GUIEventAdapter:231
@ KEY_Rightparen
Definition GUIEventAdapter:160
@ KEY_Slash
Definition GUIEventAdapter:166
@ KEY_F14
Definition GUIEventAdapter:286
@ KEY_KP_Next
Definition GUIEventAdapter:241
@ KEY_At
Definition GUIEventAdapter:173
@ KEY_KP_2
Definition GUIEventAdapter:257
@ KEY_KP_Down
Definition GUIEventAdapter:238
@ KEY_F20
Definition GUIEventAdapter:292
@ KEY_F16
Definition GUIEventAdapter:288
@ KEY_Pause
Definition GUIEventAdapter:186
@ KEY_Linefeed
Definition GUIEventAdapter:183
@ KEY_KP_F1
Definition GUIEventAdapter:230
@ KEY_Comma
Definition GUIEventAdapter:163
@ KEY_Begin
Definition GUIEventAdapter:205
@ KEY_I
Definition GUIEventAdapter:134
@ KEY_Asterisk
Definition GUIEventAdapter:161
@ KEY_Undo
Definition GUIEventAdapter:214
@ KEY_KP_Up
Definition GUIEventAdapter:236
@ KEY_Mode_switch
Definition GUIEventAdapter:221
@ KEY_Caps_Lock
Definition GUIEventAdapter:315
@ KEY_Right
Definition GUIEventAdapter:198
@ KEY_Hyper_L
Definition GUIEventAdapter:324
@ KEY_KP_Divide
Definition GUIEventAdapter:253
@ KEY_F31
Definition GUIEventAdapter:303
@ KEY_Delete
Definition GUIEventAdapter:190
@ KEY_Greater
Definition GUIEventAdapter:171
@ KEY_9
Definition GUIEventAdapter:125
@ KEY_KP_3
Definition GUIEventAdapter:258
@ KEY_3
Definition GUIEventAdapter:119
@ KEY_C
Definition GUIEventAdapter:128
@ KEY_KP_Prior
Definition GUIEventAdapter:239
@ KEY_J
Definition GUIEventAdapter:135
@ KEY_Hash
Definition GUIEventAdapter:155
@ KEY_Escape
Definition GUIEventAdapter:189
@ KEY_KP_Add
Definition GUIEventAdapter:249
@ KEY_Shift_R
Definition GUIEventAdapter:312
@ KEY_Q
Definition GUIEventAdapter:142
@ KEY_F24
Definition GUIEventAdapter:296
@ KEY_Num_Lock
Definition GUIEventAdapter:223
@ KEY_Sys_Req
Definition GUIEventAdapter:188
@ KEY_1
Definition GUIEventAdapter:117
@ KEY_T
Definition GUIEventAdapter:145
@ KEY_Return
Definition GUIEventAdapter:185
@ KEY_KP_7
Definition GUIEventAdapter:262
@ KEY_KP_0
Definition GUIEventAdapter:255
@ KEY_F30
Definition GUIEventAdapter:302
@ KEY_Control_L
Definition GUIEventAdapter:313
@ KEY_M
Definition GUIEventAdapter:138
@ KEY_Menu
Definition GUIEventAdapter:216
@ KEY_Hyper_R
Definition GUIEventAdapter:325
@ KEY_K
Definition GUIEventAdapter:136
@ KEY_4
Definition GUIEventAdapter:120
@ KEY_F2
Definition GUIEventAdapter:274
@ KEY_F3
Definition GUIEventAdapter:275
@ KEY_Left
Definition GUIEventAdapter:196
@ KEY_Control_R
Definition GUIEventAdapter:314
@ KEY_6
Definition GUIEventAdapter:122
@ KEY_F17
Definition GUIEventAdapter:289
@ KEY_Underscore
Definition GUIEventAdapter:178
@ KEY_Y
Definition GUIEventAdapter:150
@ KEY_Minus
Definition GUIEventAdapter:164
@ KEY_F15
Definition GUIEventAdapter:287
@ KEY_R
Definition GUIEventAdapter:143
@ KEY_Rightbracket
Definition GUIEventAdapter:176
@ KEY_Question
Definition GUIEventAdapter:172
@ KEY_Meta_L
Definition GUIEventAdapter:318
@ KEY_F33
Definition GUIEventAdapter:305
@ KEY_Space
Definition GUIEventAdapter:114
@ KEY_Exclaim
Definition GUIEventAdapter:153
@ KEY_F8
Definition GUIEventAdapter:280
@ KEY_F32
Definition GUIEventAdapter:304
@ KEY_Home
Definition GUIEventAdapter:195
@ KEY_F7
Definition GUIEventAdapter:279
@ KEY_Shift_L
Definition GUIEventAdapter:311
@ KEY_KP_Multiply
Definition GUIEventAdapter:248
@ KEY_Backquote
Definition GUIEventAdapter:179
@ KEY_F19
Definition GUIEventAdapter:291
@ KEY_Down
Definition GUIEventAdapter:199
@ KEY_KP_Delete
Definition GUIEventAdapter:246
@ KEY_KP_Insert
Definition GUIEventAdapter:245
@ KEY_F1
Definition GUIEventAdapter:273
@ KEY_KP_Subtract
Definition GUIEventAdapter:251
@ KEY_F13
Definition GUIEventAdapter:285
@ KEY_O
Definition GUIEventAdapter:140
@ KEY_Period
Definition GUIEventAdapter:165
@ KEY_Up
Definition GUIEventAdapter:197
@ KEY_Script_switch
Definition GUIEventAdapter:222
@ KEY_F27
Definition GUIEventAdapter:299
@ KEY_Alt_R
Definition GUIEventAdapter:321
@ KEY_F
Definition GUIEventAdapter:131
@ KEY_7
Definition GUIEventAdapter:123
@ KEY_F11
Definition GUIEventAdapter:283
@ KEY_KP_F3
Definition GUIEventAdapter:232
@ KEY_P
Definition GUIEventAdapter:141
@ KEY_Less
Definition GUIEventAdapter:169
@ KEY_V
Definition GUIEventAdapter:147
@ KEY_Next
Definition GUIEventAdapter:202
@ KEY_F12
Definition GUIEventAdapter:284
@ KEY_KP_End
Definition GUIEventAdapter:243
@ KEY_Ampersand
Definition GUIEventAdapter:157
@ KEY_F35
Definition GUIEventAdapter:307
@ KEY_S
Definition GUIEventAdapter:144
@ KEY_KP_6
Definition GUIEventAdapter:261
@ KEY_KP_5
Definition GUIEventAdapter:260
@ KEY_KP_Page_Down
Definition GUIEventAdapter:242
@ KEY_Break
Definition GUIEventAdapter:220
@ KEY_F25
Definition GUIEventAdapter:297
@ KEY_N
Definition GUIEventAdapter:139
@ KEY_Quotedbl
Definition GUIEventAdapter:154
@ KEY_Leftbracket
Definition GUIEventAdapter:174
@ KEY_Leftparen
Definition GUIEventAdapter:159
@ KEY_Tab
Definition GUIEventAdapter:182
@ KEY_Shift_Lock
Definition GUIEventAdapter:316
@ KEY_Dollar
Definition GUIEventAdapter:156
@ KEY_BackSpace
Definition GUIEventAdapter:181
@ KEY_Alt_L
Definition GUIEventAdapter:320
@ KEY_F29
Definition GUIEventAdapter:301
@ KEY_E
Definition GUIEventAdapter:130
@ KEY_5
Definition GUIEventAdapter:121
@ KEY_Cancel
Definition GUIEventAdapter:218
@ KEY_KP_9
Definition GUIEventAdapter:264
@ KEY_Equals
Definition GUIEventAdapter:170
@ KEY_F21
Definition GUIEventAdapter:293
@ KEY_X
Definition GUIEventAdapter:149
@ KEY_Insert
Definition GUIEventAdapter:213
@ KEY_Super_L
Definition GUIEventAdapter:322
@ KEY_KP_Enter
Definition GUIEventAdapter:229
@ KEY_Meta_R
Definition GUIEventAdapter:319
@ KEY_KP_Home
Definition GUIEventAdapter:234
@ KEY_F5
Definition GUIEventAdapter:277
@ KEY_0
Definition GUIEventAdapter:116
@ KEY_F28
Definition GUIEventAdapter:300
@ KEY_L
Definition GUIEventAdapter:137
@ KEY_A
Definition GUIEventAdapter:126
void setTouchData(TouchData *td)
Definition GUIEventAdapter:681
void setY(float y)
set current mouse y position.
Definition GUIEventAdapter:558
void setScrollingDeltaX(float v)
set the scrolling x-delta.
Definition GUIEventAdapter:634
void setInputRange(float Xmin, float Ymin, float Xmax, float Ymax)
set mouse input range.
Scrolling _scrolling
Definition GUIEventAdapter:742
PointerDataList & getPointerDataList()
Definition GUIEventAdapter:698
TouchPhase
Definition GUIEventAdapter:378
@ TOUCH_STATIONERY
Definition GUIEventAdapter:382
@ TOUCH_BEGAN
Definition GUIEventAdapter:380
@ TOUCH_ENDED
Definition GUIEventAdapter:383
@ TOUCH_UNKNOWN
Definition GUIEventAdapter:379
@ TOUCH_MOVED
Definition GUIEventAdapter:381
void setScrollingDeltaY(float v)
set the scrolling y-delta.
Definition GUIEventAdapter:640
float getYmax() const
get mouse maximum y.
Definition GUIEventAdapter:549
TabletPointerType
Definition GUIEventAdapter:370
@ ERASER
Definition GUIEventAdapter:374
@ PEN
Definition GUIEventAdapter:372
@ PUCK
Definition GUIEventAdapter:373
@ UNKNOWN
Definition GUIEventAdapter:371
META_Object(osgGA, GUIEventAdapter)
int _windowX
Definition GUIEventAdapter:719
void addTouchPoint(unsigned int id, TouchPhase phase, float x, float y, unsigned int tapCount=0)
virtual ~GUIEventAdapter()
Force users to create on heap, so that multiple referencing is safe.
float getTouchPointNormalizedX(unsigned int ndx) const
Definition GUIEventAdapter:685
void addPointerData(PointerData *pd)
Definition GUIEventAdapter:707
float getYnormalized() const
Definition GUIEventAdapter:571
float _Xmin
Definition GUIEventAdapter:726
osg::observer_ptr< osg::GraphicsContext > _context
Definition GUIEventAdapter:718
GUIEventAdapter(const GUIEventAdapter &rhs, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
void setMouseYOrientationAndUpdateCoords(MouseYOrientation myo)
set mouse-Y orientation (mouse-Y increases upwards or downwards) and recompute variables
void setButtonMask(int mask)
set current mouse button state.
Definition GUIEventAdapter:609
int _button
Definition GUIEventAdapter:725
void setMouseYOrientation(MouseYOrientation myo)
set mouse-Y orientation (mouse-Y increases upwards or downwards).
Definition GUIEventAdapter:600
void setX(float x)
set current mouse x position.
Definition GUIEventAdapter:552
int _modKeyMask
Definition GUIEventAdapter:731
double time() const
deprecated function for getting time of event.
Definition GUIEventAdapter:469
void setYmin(float v)
set mouse minimum x.
Definition GUIEventAdapter:540
Definition GUIEventAdapter:386
TouchSet _touches
Definition GUIEventAdapter:439
TouchSet::iterator iterator
Definition GUIEventAdapter:408
unsigned int getNumTouchPoints() const
Definition GUIEventAdapter:421
iterator begin()
Definition GUIEventAdapter:423
friend class GUIEventAdapter
Definition GUIEventAdapter:441
const TouchPoint get(unsigned int i) const
Definition GUIEventAdapter:429
TouchData()
Definition GUIEventAdapter:411
virtual ~TouchData()
Definition GUIEventAdapter:433
std::vector< TouchPoint > TouchSet
Definition GUIEventAdapter:406
TouchSet::const_iterator const_iterator
Definition GUIEventAdapter:409
const_iterator begin() const
Definition GUIEventAdapter:424
void addTouchPoint(unsigned int id, TouchPhase phase, float x, float y, unsigned int tap_count)
Definition GUIEventAdapter:435
TouchData(const TouchData &td, const osg::CopyOp &copyop)
Definition GUIEventAdapter:413
iterator end()
Definition GUIEventAdapter:426
const_iterator end() const
Definition GUIEventAdapter:427
Definition GUIEventAdapter:389
TouchPoint(unsigned int in_id, TouchPhase in_phase, float in_x, float in_y, unsigned int in_tap_count)
Definition GUIEventAdapter:396
float y
Definition GUIEventAdapter:392
TouchPoint()
Definition GUIEventAdapter:395
float x
Definition GUIEventAdapter:392
unsigned int id
Definition GUIEventAdapter:390
unsigned int tapCount
Definition GUIEventAdapter:394
TouchPhase phase
Definition GUIEventAdapter:391
Definition GUIEventAdapter:734
ScrollingMotion motion
Definition GUIEventAdapter:735
float deltaY
Definition GUIEventAdapter:737
Scrolling(const Scrolling &rhs)
Definition GUIEventAdapter:740
float deltaX
Definition GUIEventAdapter:736
Scrolling()
Definition GUIEventAdapter:739
Definition GUIEventAdapter:744
TabletPen(const TabletPen &rhs)
Definition GUIEventAdapter:752
TabletPen()
Definition GUIEventAdapter:751
float pressure
Definition GUIEventAdapter:745
float tiltY
Definition GUIEventAdapter:747
float tiltX
Definition GUIEventAdapter:746
float rotation
Definition GUIEventAdapter:748
TabletPointerType tabletPointerType
Definition GUIEventAdapter:749
#define OSGGA_EXPORT
Definition Export:40

osg logo
Generated at Wed Jul 23 2025 00:00:00 for the OpenSceneGraph by doxygen 1.14.0.