OSG  3.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes
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
 
class  GUIEventAdapter
 
class  GUIEventHandler
 
class  KeySwitchMatrixManipulator
 
class  MultiTouchTrackballManipulator
 
class  NodeTrackerManipulator
 
class  OrbitManipulator
 
struct  PointerData
 
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 environemnt via the GUIActionAdapter. The viewer writer should then honour these requests, translating them into calls to the windowing API.