12#ifndef ORTHOGONALCONTROL_H_6014714286
13#define ORTHOGONALCONTROL_H_6014714286
15#include <Carna/Carna.h>
53 const std::unique_ptr< Details > pimpl;
Defines Carna::base::CameraControl.
Defines Carna::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 moveLaterally(float unitsX, float unitsY) override
Moves the camera along its x-/y-axis. The parameters of this movement depend on the implementation.
bool isRotationEnabled() const
Tells whether rotateHorizontally and rotateVertically are enabled.
virtual void setCamera(base::Spatial &camera) override
Sets the camera that this object should control. Also sets the orthogonal projection hint if camera i...
float zoomStrength() const
Tells the factor.
virtual void rotateVertically(float radians) override
Delegates to the base::CameraControl implementation that was supplied to the constructor.
void setRotationEnabled(bool isRotationEnabled)
Enables and disables rotateHorizontally and rotateVertically.
void setZoomStrength(float zoomStrength)
Sets the factor.
virtual void updateProjection(base::math::Matrix4f &orthogonalProjection) const override
Creates orthogonalProjection matrix using base::math::ortho4f.
virtual void moveAxially(float units) override
Updates the result updateProjection produces.
OrthogonalControl(base::CameraControl *cc)
Instantiates.
virtual ~OrthogonalControl()
Deletes.
virtual void rotateHorizontally(float radians) override
Delegates to the base::CameraControl implementation that was supplied to the constructor.
static const float DEFAULT_ZOOM_STRENGTH
Default factor.
float zoomFactor() const
Tells current zoom factor.
Eigen::Matrix< float, 4, 4, Eigen::ColMajor > Matrix4f
Defines matrix.
#define NON_COPYABLE
Features class it is placed in as non-copyable.