Carna Version 3.3.3
Loading...
Searching...
No Matches
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
22namespace Carna
23{
24
25namespace presets
26{
27
28
29
30// ----------------------------------------------------------------------------------
31// PerspectiveControl
32// ----------------------------------------------------------------------------------
33
41{
42
44
45 struct Details;
46 const std::unique_ptr< Details > pimpl;
47
48public:
49
53 const static float DEFAULT_FOV_HORIZONTAL;
54
59
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
Defines Carna::base::ProjectionControl.
Controls projection matrices.
Controls projection matrices that induce frustum-shaped visible volume.
virtual void updateProjection(base::math::Matrix4f &perspectiveProjection) const override
Creates perspectiveProjection matrix using base::math::frustum4f.
float fovHorizontal() const
Tells the half angle between the left and the right frustum planes.
static const float DEFAULT_FOV_HORIZONTAL
Holds the default half angle betwen the left and the right frustum planes.
virtual ~PerspectiveControl()
Deletes.
void setFovHorizontal(float radians)
Sets the half angle between the left and the right frustum planes.
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.