1 /*---------------------------------------------------------------------------*\
5 * Copyright (C) 2000-2002 by the OpenSG Forum *
9 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de *
11 \*---------------------------------------------------------------------------*/
12 /*---------------------------------------------------------------------------*\
15 * This library is free software; you can redistribute it and/or modify it *
16 * under the terms of the GNU Library General Public License as published *
17 * by the Free Software Foundation, version 2. *
19 * This library is distributed in the hope that it will be useful, but *
20 * WITHOUT ANY WARRANTY; without even the implied warranty of *
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
22 * Library General Public License for more details. *
24 * You should have received a copy of the GNU Library General Public *
25 * License along with this library; if not, write to the Free Software *
26 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
28 \*---------------------------------------------------------------------------*/
29 /*---------------------------------------------------------------------------*\
37 \*---------------------------------------------------------------------------*/
39 #ifndef _OSG_NONEENGINE_H_
40 #define _OSG_NONEENGINE_H_
42 #include "OSGConfig.h"
43 #include "OSGUtilDef.h"
45 #include "OSGVector.h"
46 #include "OSGQuaternion.h"
47 #include "OSGViewport.h"
48 #include "OSGNavigatorEngine.h"
52 /*! \brief Base class for all navigator engines.
53 \ingroup GrpUtilNavigation
54 \ingroup GrpLibOSGUtil
57 class OSG_UTIL_DLLMAPPING NoneEngine
: public NavigatorEngine
59 typedef NavigatorEngine Inherited
;
60 typedef NoneEngine Self
;
62 /*========================== PUBLIC =================================*/
66 /*---------------------------------------------------------------------*/
70 OSG_GEN_INTERNAL_MEMOBJPTR(NoneEngine
);
73 /*---------------------------------------------------------------------*/
74 /*! \name Construction */
77 static ObjTransitPtr
create(void);
80 /*---------------------------------------------------------------------*/
81 /*! \name Class Get */
84 const char *getClassname(void) { return "NoneEngine"; }
87 /*---------------------------------------------------------------------*/
91 virtual const Pnt3f
&getFrom(void);
92 virtual const Pnt3f
&getAt(void);
93 virtual const Vec3f
&getUp(void);
94 virtual const Matrix
&getMatrix(void);
95 virtual Real32
getDistance(void);
98 /*---------------------------------------------------------------------*/
102 virtual void setFrom(Pnt3f new_from
);
103 virtual void setAt(Pnt3f new_at
);
104 virtual void setUp(Vec3f new_up
);
105 virtual void set(Pnt3f new_from
, Pnt3f new_at
, Vec3f new_up
);
106 virtual void set(const Matrix
& new_matrix
);
107 virtual void setDistance(Real32 new_distance
);
110 /*---------------------------------------------------------------------*/
111 /*! \name navigator engine callbacks */
114 virtual void buttonPress(Int16 button
,Int16 x
,Int16 y
,Navigator
* nav
);
115 virtual void buttonRelease(Int16
, Int16 x
,Int16 y
,Navigator
* nav
);
116 virtual void keyPress(Int16 key
, Int16 x
,Int16 y
,Navigator
* nav
);
117 virtual void moveTo( Int16 x
,Int16 y
,Navigator
* nav
);
118 virtual void idle(Int16 buttons
, Int16 x
,Int16 y
,Navigator
* nav
);
121 /*========================== PROTECTED ==============================*/
125 /*---------------------------------------------------------------------*/
126 /*! \name Constructors/Destructor */
130 virtual ~NoneEngine(void);
133 /*---------------------------------------------------------------------*/
143 /* Not implemented */
144 NoneEngine(const NoneEngine
&other
);
145 NoneEngine
&operator =(const NoneEngine
&other
);
148 OSG_GEN_MEMOBJPTR(NoneEngine
);