Overte C++ Documentation
I3dMouseParams.h
1 //
2 // 3DConnexion.cpp
3 // hifi
4 //
5 // Created by MarcelEdward Verhagen on 09-06-15.
6 // Copyright 2015 High Fidelity, Inc.
7 //
8 // Distributed under the Apache License, Version 2.0.
9 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10 //
11 
12 
13 #ifndef I3D_MOUSE_PARAMS_H
14 #define I3D_MOUSE_PARAMS_H
15 
16 // Parameters for the 3D mouse based on the SDK from 3Dconnexion
17 
18 class I3dMouseSensor {
19 public:
20  enum Speed {
21  SPEED_LOW = 0,
22  SPEED_MID,
23  SPEED_HIGH
24  };
25 
26  virtual bool IsPanZoom() const = 0;
27  virtual bool IsRotate() const = 0;
28  virtual Speed GetSpeed() const = 0;
29 
30  virtual void SetPanZoom(bool isPanZoom) = 0;
31  virtual void SetRotate(bool isRotate) = 0;
32  virtual void SetSpeed(Speed speed) = 0;
33 
34 protected:
35  virtual ~I3dMouseSensor() {}
36 };
37 
38 class I3dMouseNavigation {
39 public:
40  enum Pivot {
41  PIVOT_MANUAL = 0,
42  PIVOT_AUTO,
43  PIVOT_AUTO_OVERRIDE
44  };
45 
46  enum Navigation {
47  NAVIGATION_OBJECT_MODE = 0,
48  NAVIGATION_CAMERA_MODE,
49  NAVIGATION_FLY_MODE,
50  NAVIGATION_WALK_MODE,
51  NAVIGATION_HELICOPTER_MODE
52  };
53 
54  enum PivotVisibility {
55  PIVOT_HIDE = 0,
56  PIVOT_SHOW,
57  PIVOT_SHOW_MOVING
58  };
59 
60  virtual Navigation GetNavigationMode() const = 0;
61  virtual Pivot GetPivotMode() const = 0;
62  virtual PivotVisibility GetPivotVisibility() const = 0;
63  virtual bool IsLockHorizon() const = 0;
64 
65  virtual void SetLockHorizon(bool bOn) = 0;
66  virtual void SetNavigationMode(Navigation navigation) = 0;
67  virtual void SetPivotMode(Pivot pivot) = 0;
68  virtual void SetPivotVisibility(PivotVisibility visibility) = 0;
69 
70 protected:
71  virtual ~I3dMouseNavigation(){}
72 };
73 
74 class I3dMouseParam : public I3dMouseSensor, public I3dMouseNavigation {
75 public:
76  virtual ~I3dMouseParam() {}
77 };
78 
79 #endif