15#ifndef PROJECTIONCONTROL_H_6014714286
16#define PROJECTIONCONTROL_H_6014714286
50 const std::unique_ptr< Details > pimpl;
Contains forward-declarations.
Represents an association.
Controls projection matrices.
bool isUpdateAvailable() const
Tells true when probably a new projection matrix is available and false when updateProjection is like...
static const float DEFAULT_MINIMUM_VISIBLE_DISTANCE
Holds default 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.
void setMinimumVisibleDistance(float minimumVisibleDistance)
Sets near clipping plane distance that should be used by updateProjection.
static const float DEFAULT_MAXIMUM_VISIBLE_DISTANCE
Holds default far clipping plane distance that should be used by updateProjection.
float maximumVisibleDistance() const
Tells far clipping plane distance that is used by updateProjection.
void setProjectionValidated() const
Denotes that no update is available.
void setViewportWidth(unsigned int width)
Sets the width of the viewport updateProjection should create projection matrices for.
ProjectionControl()
Instantiates.
void invalidateProjection()
Denotes that an update is available.
void setViewportHeight(unsigned int height)
Sets the height of the viewport updateProjection should create projection matrices for.
void setMaximumVisibleDistance(float maximumVisibleDistance)
Sets far clipping plane distance that should be used by updateProjection.
unsigned int viewportHeight() const
Tells the height of the viewport updateProjection should create projection matrices for.
virtual ~ProjectionControl()
Deletes.
float minimumVisibleDistance() const
Tells near clipping plane distance that is used by updateProjection.
unsigned int viewportWidth() const
Tells the width of the viewport updateProjection should create projection matrices for.
Defines LibCarna::base::math namespace and LIBCARNA_FOR_VECTOR3UI.
Eigen::Matrix< float, 4, 4, Eigen::ColMajor > Matrix4f
Defines matrix.
#define NON_COPYABLE
Marks the class that it is placed in as non-copyable.