Unofficial OpenGL Software Development Kit: Mouse Poles

Unofficial OpenGL Software Development Kit 0.5.0

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Classes | Enumerations
Mouse Poles
GL Util

##

Objects that allow mouse-based control over the position and orientation of objects and the camera.

A "Pole" is a class that allows mouse-based control over an object's orientation by clicking and dragging.

In order to be platform-agnostic, the Pole classes are not dependent on input from any one windowing system. Instead, they rely on external code to provide input. When the user clicks the mouse, external code must detect this for the current platform and translate it for the Pole class.

All Pole classes have 4 input functions: `MouseClick`, `MouseMove`, `MouseWheel`, and `CharPress`. The user should call these to provide input to the Poles.

MouseClick must be called when a mouse button is pressed or released; it should not be called when the button is merely held. It should also be given the modifier keys that are currenlty being held down at the time of the pressing/releasing.

MouseMove should be called anytime the mouse is moved, though they will usually only do something useful when the action button is down. MouseWheel should be called when the mouse wheel is touched. CharPress should be called when a keyboard character is entered. It should only be called for presses; releases are irrelevant.

When a Pole is created, it is given a specific mouse button to listen for and respond to. This is the button that the pole in question uses for all of its mouse-based controls. This feature allows you to, for example, use left-clicks to mean "move the camera" and right-clicks to mean "move the object".

## Classes

class | glutil::ViewProvider
| Abstract base class used by ViewPole to identify that it provides a viewing matrix. More...
struct | glutil::ObjectData
| Utility object containing the ObjectPole's position and orientation information. More...
class | glutil::ObjectPole
| Mouse-based control over the orientation and position of an object. More...
struct | glutil::ViewData
| Utility object containing the ViewPole's view information. More...
struct | glutil::ViewScale
| Utility object describing the scale of the ViewPole. More...
class | glutil::ViewPole
| Mouse-based control over the orientation and position of the camera. More...

## Enumerations

enum | glutil::MouseButtons { glutil::MB_LEFT_BTN = 1, glutil::MB_MIDDLE_BTN, glutil::MB_RIGHT_BTN }
| The possible buttons that Poles can use. More...
enum | glutil::MouseModifiers { glutil::MM_KEY_SHIFT = 0x01, glutil::MM_KEY_CTRL = 0x02, glutil::MM_KEY_ALT = 0x04 }
| Bitfield for modifiers that may be held down while mouse movements go on. More...

## Enumeration Type Documentation

enum glutil::MouseButtons

The possible buttons that Poles can use.

Enumerator
MB_LEFT_BTN | The left mouse button.
MB_MIDDLE_BTN | The middle mouse button.
MB_RIGHT_BTN | The right mouse button.

enum glutil::MouseModifiers

Bitfield for modifiers that may be held down while mouse movements go on.

Enumerator
MM_KEY_SHIFT | One of the shift keys.
MM_KEY_CTRL | One of the control keys.
MM_KEY_ALT | One of the alt keys.