Unofficial OpenGL Software Development Kit
0.5.0
|
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... | |
enum glutil::MouseButtons |