Basic Image AlgorithmS Library  2.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
FlyControl.hh
1 #ifndef __FlyControl_HH__
2 #define __FlyControl_HH__
3 
4 #include <bias_config.h>
5 #include <GLviewer/Controller/ControlInterface.hh>
6 #include <Base/Math/Vector3.hh>
7 
8 namespace BIAS {
9 /**
10  \class FlyControl
11  \author cmenk
12  \ingroup g_glviewer
13  \brief class for camera movement in fly mode.
14 */
15  class BIASGLviewer_EXPORT FlyControl : public ControlInterface
16  {
17  public:
18  FlyControl();
19 
20  /** Stepsize_ defines how fast the camera moves, will be set to 5% of distance
21  * to Point of Interest, when a new one is set. */
22  void SetStepsize(double stepsize);
23  /** Moves the camera in the named directions, calls MoveDirection */
24  void MoveForward();
25  void MoveBackward();
26  void MoveLeft();
27  void MoveRight();
28  void MoveUp();
29  void MoveDown();
30 
31  bool RightMouseMoved(int x1, int x2, int y1, int y2);
32  bool LeftMouseMoved(int x1, int x2, int y1, int y2);
33  bool MiddleMouseMoved(int x1, int x2, int y1, int y2);
34  bool LeftMouseDoubleClicked(int x, int y);
35  bool LeftAndRightMouseMoved(int x1, int x2, int y1, int y2);
36 
37  /** Computes from direction the new C vector of the camera. */
38  void MoveDirection(BIAS::Vector3<double> direction);
39 
40  void RotateAroundViewingDirection(double rotationAngleRAD);
41  void SetUseLeftDouble(bool ld) {UseLeftDouble_ = ld;};
42  bool GetUseLeftDouble(){return UseLeftDouble_;};
43 
44  protected:
45  double Stepsize_;
47  };
48 }//end of namespace
49 #endif
class for camera movement in fly mode.
Definition: FlyControl.hh:15
void SetUseLeftDouble(bool ld)
Definition: FlyControl.hh:41
Defines the common interface used for communication between rendering components. ...