Unofficial OpenGL Software Development Kit  0.5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Classes | Enumerations
Mouse Poles

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

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.

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.