I3dMouseParams.h 1.4 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
#ifndef I3D_MOUSE_PARAMS_H
#define I3D_MOUSE_PARAMS_H

/*
   Parameters for the 3D mouse based on the SDK from 3Dconnexion
*/

class I3dMouseSensor
{
public:

	enum ESpeed {
	   kLowSpeed = 0,
	   kMidSpeed,
	   kHighSpeed
	};

virtual bool	IsPanZoom() const = 0;
virtual bool	IsRotate() const  = 0;
virtual ESpeed	GetSpeed() const  = 0;

virtual void	SetPanZoom(bool isPanZoom) = 0;
virtual void	SetRotate(bool isRotate) = 0;
virtual void	SetSpeed(ESpeed speed) = 0;

protected:

virtual ~I3dMouseSensor() {}

};


class I3dMouseNavigation
{
public:

   enum EPivot {
	  kManualPivot = 0,
	  kAutoPivot,
	  kAutoPivotOverride
   };

   enum ENavigation {
	  kObjectMode = 0,
	  kCameraMode,
	  kFlyMode,
	  kWalkMode,
	  kHelicopterMode
   };

   enum EPivotVisibility {
	  kHidePivot = 0,
	  kShowPivot,
	  kShowMovingPivot
   };


virtual ENavigation		GetNavigationMode() const  = 0;
virtual EPivot			GetPivotMode() const  = 0;
virtual EPivotVisibility GetPivotVisibility()  const = 0;
virtual bool			IsLockHorizon()  const = 0;

virtual void			SetLockHorizon(bool bOn) = 0;
virtual void			SetNavigationMode(ENavigation navigation) = 0;
virtual void			SetPivotMode(EPivot pivot) = 0;
virtual void			SetPivotVisibility(EPivotVisibility visibility) = 0;

protected:

virtual ~I3dMouseNavigation(){}


};


class I3dMouseParam : public I3dMouseSensor, public I3dMouseNavigation
{
public:

virtual ~I3dMouseParam() {}

};

#endif