Coin Logo http://www.sim.no
http://www.coin3d.org

SoQtSpaceball.h

00001 /**************************************************************************\
00002  *
00003  *  This file is part of the Coin 3D visualization library.
00004  *  Copyright (C) 1998-2005 by Systems in Motion.  All rights reserved.
00005  *
00006  *  This library is free software; you can redistribute it and/or
00007  *  modify it under the terms of the GNU General Public License
00008  *  ("GPL") version 2 as published by the Free Software Foundation.
00009  *  See the file LICENSE.GPL at the root directory of this source
00010  *  distribution for additional information about the GNU GPL.
00011  *
00012  *  For using Coin with software that can not be combined with the GNU
00013  *  GPL, and for taking advantage of the additional benefits of our
00014  *  support services, please contact Systems in Motion about acquiring
00015  *  a Coin Professional Edition License.
00016  *
00017  *  See <URL:http://www.coin3d.org/> for more information.
00018  *
00019  *  Systems in Motion, Postboks 1283, Pirsenteret, 7462 Trondheim, NORWAY.
00020  *  <URL:http://www.sim.no/>.
00021  *
00022 \**************************************************************************/
00023 
00024 #ifndef SOQT_SPACEBALL_H
00025 #define SOQT_SPACEBALL_H
00026 
00027 #include <Inventor/Qt/devices/SoQtDevice.h>
00028 #include <Inventor/SbLinear.h>
00029 
00030 // *************************************************************************
00031 
00032 class SOQT_DLL_API SoQtSpaceball : public SoQtDevice {
00033   SOQT_OBJECT_HEADER(SoQtSpaceball, SoQtDevice);
00034 
00035 public:
00036   enum Mask {
00037     MOTION_EVENT  = 0x01,  MOTION = MOTION_EVENT,
00038     PRESS_EVENT   = 0x02,  PRESS = PRESS_EVENT,
00039     RELEASE_EVENT = 0x04,  RELEASE = RELEASE_EVENT,
00040     ALL_EVENTS = MOTION_EVENT | PRESS_EVENT | RELEASE_EVENT,
00041     ALL = ALL_EVENTS
00042   };
00043 
00044   enum DeviceType {
00045     SPACE_BALL             = 0x01,
00046     MAGELLAN_SPACE_MOUSE   = 0x02
00047   };
00048 
00049   SoQtSpaceball(int events = ALL_EVENTS);
00050   virtual ~SoQtSpaceball();
00051 
00052   virtual void enable(QWidget * widget, SoQtEventHandler * handler, void * closure);
00053   virtual void disable(QWidget * widget, SoQtEventHandler * handler, void * closure);
00054 
00055   virtual const SoEvent * translateEvent(QEvent * event);
00056 
00057   void setRotationScaleFactor(float f);
00058   float getRotationScaleFactor(void) const;
00059   void setTranslationScaleFactor(float f);
00060   float getTranslationScaleFactor(void) const;
00061 
00062   static SbBool exists(void);
00063 
00064   void setFocusToWindow(SbBool flag);
00065   SbBool isFocusToWindow(void) const;
00066 
00067 private:
00068   class SoQtSpaceballP * pimpl;
00069 };
00070 
00071 // *************************************************************************
00072 
00073 #endif // ! SOQT_SPACEBALL_H

Copyright © 1998-2005 by Systems in Motion AS. All rights reserved.

Generated on Mon Mar 27 00:38:51 2006 for SoQt by Doxygen. 1.4.6