15#ifndef ORTHOGONALCONTROL_H_6014714286
16#define ORTHOGONALCONTROL_H_6014714286
56 const std::unique_ptr< Details > pimpl;
Defines LibCarna::base::CameraControl.
Contains forward-declarations.
Defines LibCarna::base::ProjectionControl.
Defines interface for intuitive Camera control.
Controls projection matrices.
Represents a spatial scene element. It's location is determined relatively to another spatial that is...
Controls orthogonal projection matrices, that induce box-shaped visible volume, and base::Camera obje...
virtual void rotateVertically(float radians) override
Delegates to the base::CameraControl implementation that was supplied to the constructor.
virtual void updateProjection(base::math::Matrix4f &orthogonalProjection) const override
Creates orthogonalProjection matrix using base::math::ortho4f.
virtual void moveLaterally(float unitsX, float unitsY) override
Moves the camera along its x-/y-axis. The parameters of this movement depend on the implementation.
static const float DEFAULT_ZOOM_STRENGTH
Default factor.
virtual ~OrthogonalControl()
Deletes.
float zoomStrength() const
Tells the factor.
virtual void rotateHorizontally(float radians) override
Delegates to the base::CameraControl implementation that was supplied to the constructor.
bool isRotationEnabled() const
Tells whether rotateHorizontally and rotateVertically are enabled.
float zoomFactor() const
Tells current zoom factor.
OrthogonalControl(base::CameraControl *cc)
Instantiates.
void setRotationEnabled(bool isRotationEnabled)
Enables and disables rotateHorizontally and rotateVertically.
virtual void moveAxially(float units) override
Updates the result updateProjection produces.
void setZoomStrength(float zoomStrength)
Sets the factor.
virtual void setCamera(base::Spatial &camera) override
Sets the camera that this object should control. Also sets the orthogonal projection hint if camera i...
Eigen::Matrix< float, 4, 4, Eigen::ColMajor > Matrix4f
Defines matrix.
#define NON_COPYABLE
Marks the class that it is placed in as non-copyable.