12 #ifndef PROJECTIONCONTROL_H_6014714286 13 #define PROJECTIONCONTROL_H_6014714286 15 #include <Carna/Carna.h> 47 const std::unique_ptr< Details > pimpl;
79 void setViewportWidth(
unsigned int width );
87 void setViewportHeight(
unsigned int height );
93 unsigned int viewportWidth()
const;
99 unsigned int viewportHeight()
const;
107 void setMinimumVisibleDistance(
float minimumVisibleDistance );
115 void setMaximumVisibleDistance(
float maximumVisibleDistance );
120 float minimumVisibleDistance()
const;
125 float maximumVisibleDistance()
const;
130 virtual void updateProjection(
math::Matrix4f& projectionMatrix )
const = 0;
137 bool isUpdateAvailable()
const;
144 void invalidateProjection();
149 void setProjectionValidated()
const;
161 #endif // PROJECTIONCONTROL_H_6014714286 Defines Carna::base::math namespace and CARNA_FOR_VECTOR3UI.
static const float DEFAULT_MAXIMUM_VISIBLE_DISTANCE
Holds default far clipping plane distance that should be used by updateProjection.
Controls projection matrices.
static const float DEFAULT_MINIMUM_VISIBLE_DISTANCE
Holds default near clipping plane distance that should be used by updateProjection.
Eigen::Matrix< float, 4, 4, Eigen::ColMajor > Matrix4f
Defines matrix.
#define NON_COPYABLE
Features class it is placed in as non-copyable.