osgGA Namespace Reference

## Classes

class | AnimationPathManipulator
class | CameraManipulator
class | CameraViewSwitchManipulator
class | Device
class | DriveManipulator
class | Event
class | EventHandler
class | EventQueue
class | EventVisitor
class | FirstPersonManipulator
class | FlightManipulator
class | GUIActionAdapter
struct | PointerData
class | GUIEventAdapter
class | GUIEventHandler
class | KeySwitchMatrixManipulator
class | MultiTouchTrackballManipulator
class | NodeTrackerManipulator
class | OrbitManipulator
class | SphericalManipulator
class | StandardManipulator
class | StateSetManipulator
class | TerrainManipulator
class | TrackballManipulator
class | UFOManipulator
| A UFO manipulator driven with keybindings. More...
class | Widget

## Detailed Description

The 'GA' in osgGA stands for 'GUI Abstraction'; the osgGA namespace provides facilities to help developers write the glue to allow the osg to work with varying window systems.

As a cross-platform, window system-agnostic class library, the OpenSceneGraph has no direct ties to any given windowing environment. Viewers, however, must at some level interact with a window system - where Window system may refer to a windowing API, e.g. GLUT, Qt, FLTK, MFC, ...

There is much commonality in the implementation of Viewers for varying windowing environments. E.g. most Viewers will update a Camera position in response to a mouse event, and may request that a timer be started as a result of a model being 'spun'.

The purpose of the osgGA namespace is to centralise the common areas of this functionality. The viewer writer needs then only write a GUIEventAdapter, a GUIActionAdapter, and assemble a collection of GUIEventHandlers as appropriate for the viewer.

Events from the windowing environment are adpated, and then fed into the GUIEventHandlers. The GUIEventHandlers analyse and take action, and make requests of the windowing environment via the GUIActionAdapter. The viewer writer should then honour these requests, translating them into calls to the windowing API.