Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mouse events, Advanced camera control George Georgiev Telerik Corporation www.telerik.com.

Similar presentations


Presentation on theme: "Mouse events, Advanced camera control George Georgiev Telerik Corporation www.telerik.com."— Presentation transcript:

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


Download ppt "Mouse events, Advanced camera control George Georgiev Telerik Corporation www.telerik.com."

Similar presentations


Ads by Google