Download presentation
Presentation is loading. Please wait.
Published byTyler Thornton Modified over 9 years ago
1
Mouse events, Advanced camera control George Georgiev Telerik Corporation www.telerik.com
2
GLUT Mouse Interaction Mouse up/down events Passive motion Active motion OpenGL Camera Default transformation “Manual” control Custom camera class 2
3
Mouse event callbacks
4
4 GLUT provides mouse detection capabilities Advantages Multi-platform Similar to other GLUT routines Easy to code Disadvantages Doesn’t receive device information No scroll information Unstable ‘leave’ and ‘enter’ events
5
5 Detecting mouse buttons Registering callback function glutMouseFunc(void(*func)(int button, int state, int x, int y)) func – mouse button callback function button – mouse button raising the event state – type of event x, y – cursor coordinates (from upper left corner)
6
6 Detecting mouse buttons (2) Callback parameter values button GLUT_LEFT_BUTTON GLUT_MIDDLE_BUTTON GLUT_RIGHT_BUTTON state GLUT_DOWN GLUT_UP
7
7 Detecting mouse buttons (2) Callback parameter values button GLUT_LEFT_BUTTON GLUT_MIDDLE_BUTTON GLUT_RIGHT_BUTTON state GLUT_DOWN GLUT_UP
8
8 Detecting movement Types Passive Mouse moves No buttons pressed Active Mouse moves One or more buttons pressed
9
9 Passive motion Registering callback function glutPassiveMotionFunc(void(*func)(int x, int y)) func – mouse passive motion callback x, y – cursor coordinates (from upper left corner)
10
10 Active motion Registering callback function glutMotionFunc(void(*func)(int x, int y)) func – mouse active motion callback x, y – cursor coordinates (from upper left corner)
11
GLUT Mouse leave and entry routines Detect when cursor leaves and enters window Registering callback glutEntryFunc(void(*func)(int state)) Func – callback handling cursor leaving and entering window State – enter or leave event GLUT_ENTERED GLUT_LEFT 11
12
Cursor-related routines glutWarpPointer (int x, int y) Sends cursor to specified coordinates glutSetCursor (int cursor) Sets the cursor image (style) for the window Values: GLUT_CURSOR_NONE, GLUT_CURSOR_INFO, GLUT_CURSOR_DESTROY, etc… Google for more (much, much more) 12
13
Object-oriented mouse handling Custom mouse class Current cursor position Last cursor position and/or drag-begin position Current mouse button states Last mouse button states Cursor style Anything else you can think of 13
14
Live Demo
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.