You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
1.4 KiB
84 lines
1.4 KiB
#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
|
|
|