Carna  Version 3.3.2
PerspectiveControl.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 PERSPECTIVECONTROL_H_6014714286
13 #define PERSPECTIVECONTROL_H_6014714286
14 
15 #include <Carna/Carna.h>
17 
22 namespace Carna
23 {
24 
25 namespace presets
26 {
27 
28 
29 
30 // ----------------------------------------------------------------------------------
31 // PerspectiveControl
32 // ----------------------------------------------------------------------------------
33 
41 {
42 
44 
45  struct Details;
46  const std::unique_ptr< Details > pimpl;
47 
48 public:
49 
53  const static float DEFAULT_FOV_HORIZONTAL;
54 
59 
63  virtual ~PerspectiveControl();
64 
68  virtual void updateProjection( base::math::Matrix4f& perspectiveProjection ) const override;
69 
74  void setFovHorizontal( float radians );
75 
79  float fovHorizontal() const;
80 
81 }; // PerspectiveControl
82 
83 
84 
85 } // namespace Carna :: presets
86 
87 } // namespace Carna
88 
89 
90 
91 #endif // PERSPECTIVECONTROL_H_6014714286
92 
static const float DEFAULT_FOV_HORIZONTAL
Holds the default half angle betwen the left and the right frustum planes.
Controls projection matrices.
Controls projection matrices that induce frustum-shaped visible volume.
Defines Carna::base::ProjectionControl.
Eigen::Matrix< float, 4, 4, Eigen::ColMajor > Matrix4f
Defines matrix.
Definition: math.h:193
#define NON_COPYABLE
Features class it is placed in as non-copyable.
Definition: noncopyable.h:109