Carna  Version 3.3.2
OrthogonalControl.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2010 - 2015 Leonid Kostrykin
3  *
4  * Chair of Medical Engineering (mediTEC)
5  * RWTH Aachen University
6  * Pauwelsstr. 20
7  * 52074 Aachen
8  * Germany
9  *
10  */
11 
12 #ifndef ORTHOGONALCONTROL_H_6014714286
13 #define ORTHOGONALCONTROL_H_6014714286
14 
15 #include <Carna/Carna.h>
18 
23 namespace Carna
24 {
25 
26 namespace presets
27 {
28 
29 
30 
31 // ----------------------------------------------------------------------------------
32 // OrthogonalControl
33 // ----------------------------------------------------------------------------------
34 
48 {
49 
51 
52  struct Details;
53  const std::unique_ptr< Details > pimpl;
54 
55 public:
56 
60  const static float DEFAULT_ZOOM_STRENGTH;
61 
66  explicit OrthogonalControl( base::CameraControl* cc );
67 
71  virtual ~OrthogonalControl();
72 
76  void setZoomStrength( float zoomStrength );
77 
81  float zoomStrength() const;
82 
86  void setRotationEnabled( bool isRotationEnabled );
87 
91  bool isRotationEnabled() const;
92 
96  float zoomFactor() const;
97 
101  virtual void updateProjection( base::math::Matrix4f& orthogonalProjection ) const override;
102 
108  virtual void setCamera( base::Spatial& camera ) override;
109 
114  virtual void rotateHorizontally( float radians ) override;
115 
120  virtual void rotateVertically( float radians ) override;
121 
125  virtual void moveAxially( float units ) override;
126 
127  virtual void moveLaterally( float unitsX, float unitsY ) override;
128 
129 }; // OrthogonalControl
130 
131 
132 
133 } // namespace Carna :: presets
134 
135 } // namespace Carna
136 
137 
138 
139 #endif // ORTHOGONALCONTROL_H_6014714286
140 
Controls projection matrices.
Controls orthogonal projection matrices, that induce box-shaped visible volume, and base::Camera obje...
Defines Carna::base::ProjectionControl.
Represents a spatial scene element. It&#39;s location is determined relatively to another spatial that is...
Definition: Spatial.h:44
Eigen::Matrix< float, 4, 4, Eigen::ColMajor > Matrix4f
Defines matrix.
Definition: math.h:193
Defines Carna::base::CameraControl.
static const float DEFAULT_ZOOM_STRENGTH
Default factor.
Defines interface for intuitive Camera control.
Definition: CameraControl.h:39
#define NON_COPYABLE
Features class it is placed in as non-copyable.
Definition: noncopyable.h:109