root/OpenSceneGraph/trunk/include/osgGA/Export @ 13041

Revision 13041, 2.8 kB (checked in by robert, 3 years ago)

Ran script to remove trailing spaces and tabs

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
2 *
3 * This library is open source and may be redistributed and/or modified under
4 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
5 * (at your option) any later version.  The full license is in LICENSE file
6 * included with this distribution, and on the openscenegraph.org website.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 * OpenSceneGraph Public License for more details.
12*/
13
14// The following symbol has a underscore suffix for compatibility.
15#ifndef OSGGA_EXPORT_
16#define OSGGA_EXPORT_ 1
17
18#include<osg/Config>
19
20#if defined(_MSC_VER) && defined(OSG_DISABLE_MSVC_WARNINGS)
21    #pragma warning( disable : 4244 )
22    #pragma warning( disable : 4251 )
23    #pragma warning( disable : 4267 )
24    #pragma warning( disable : 4275 )
25    #pragma warning( disable : 4290 )
26    #pragma warning( disable : 4786 )
27    #pragma warning( disable : 4305 )
28    #pragma warning( disable : 4996 )
29#endif
30
31#if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__) || defined( __BCPLUSPLUS__) || defined( __MWERKS__)
32    #  if defined( OSG_LIBRARY_STATIC )
33        #    define OSGGA_EXPORT
34        #  elif defined( OSGGA_LIBRARY )
35        #    define OSGGA_EXPORT   __declspec(dllexport)
36        #  else
37        #    define OSGGA_EXPORT   __declspec(dllimport)
38        #endif
39#else
40        #define OSGGA_EXPORT
41#endif
42
43#endif
44
45
46/**
47
48\namespace osgGA
49
50The 'GA' in osgGA stands for 'GUI Abstraction'; the osgGA namespace provides facilities to
51help developers write the glue to allow the osg to work with varying window systems.
52
53As a cross-platform, window system-agnostic class library, the OpenSceneGraph
54has no direct ties to any given windowing environment. Viewers, however, must at
55some level interact with a window system - where Window system may refer to a windowing
56API, e.g. GLUT, Qt, FLTK, MFC, ...
57
58There is much commonality in the implementation of Viewers for varying windowing
59environments. E.g. most Viewers will update a Camera position in response to a mouse
60event, and may request that a timer be started as a result of a model being 'spun'.
61
62The purpose of the osgGA namespace is to centralise the common areas of this
63functionality. The viewer writer needs then only write a GUIEventAdapter, a
64GUIActionAdapter, and assemble a collection of GUIEventHandlers
65as appropriate for the viewer.
66
67Events from the windowing environment are adpated, and then fed into the GUIEventHandlers.
68The GUIEventHandlers analyse and take action, and make requests of the windowing
69environemnt via the GUIActionAdapter. The viewer writer should then honour these
70requests, translating them into calls to the windowing API.
71
72*/
73
74
Note: See TracBrowser for help on using the browser.