12#ifndef PROJECTIONCONTROL_H_6014714286
13#define PROJECTIONCONTROL_H_6014714286
15#include <Carna/Carna.h>
47 const std::unique_ptr< Details > pimpl;
Represents an association.
Controls projection matrices.
ProjectionControl()
Instantiates.
void setViewportWidth(unsigned int width)
Sets the width of the viewport updateProjection should create projection matrices for.
void setViewportHeight(unsigned int height)
Sets the height of the viewport updateProjection should create projection matrices for.
void invalidateProjection()
Denotes that an update is available.
float minimumVisibleDistance() const
Tells near clipping plane distance that is used by updateProjection.
void setProjectionValidated() const
Denotes that no update is available.
virtual ~ProjectionControl()
Deletes.
unsigned int viewportWidth() const
Tells the width of the viewport updateProjection should create projection matrices for.
static const float DEFAULT_MAXIMUM_VISIBLE_DISTANCE
Holds default far clipping plane distance that should be used by updateProjection.
static const float DEFAULT_MINIMUM_VISIBLE_DISTANCE
Holds default near clipping plane distance that should be used by updateProjection.
float maximumVisibleDistance() const
Tells far clipping plane distance that is used by updateProjection.
void setMaximumVisibleDistance(float maximumVisibleDistance)
Sets far clipping plane distance that should be used by updateProjection.
bool isUpdateAvailable() const
Tells true when probably a new projection matrix is available and false when updateProjection is like...
unsigned int viewportHeight() const
Tells the height of the viewport updateProjection should create projection matrices for.
void setMinimumVisibleDistance(float minimumVisibleDistance)
Sets near clipping plane distance that should be used by updateProjection.
virtual void updateProjection(math::Matrix4f &projectionMatrix) const =0
Creates projectionMatrix based on previously set parameters.
Defines Carna::base::math namespace and CARNA_FOR_VECTOR3UI.
Eigen::Matrix< float, 4, 4, Eigen::ColMajor > Matrix4f
Defines matrix.
#define NON_COPYABLE
Features class it is placed in as non-copyable.