diff --git a/src/Magnum/SceneGraph/AbstractCamera.h b/src/Magnum/SceneGraph/AbstractCamera.h index 0859e4280..e3449017c 100644 --- a/src/Magnum/SceneGraph/AbstractCamera.h +++ b/src/Magnum/SceneGraph/AbstractCamera.h @@ -29,7 +29,6 @@ * @brief Class @ref Magnum::SceneGraph::AbstractCamera, enum @ref Magnum::SceneGraph::AspectRatioPolicy, alias @ref Magnum::SceneGraph::AbstractBasicCamera2D, @ref Magnum::SceneGraph::AbstractBasicCamera3D, typedef @ref Magnum::SceneGraph::AbstractCamera2D, @ref Magnum::SceneGraph::AbstractCamera3D */ -#include "Magnum/Math/Functions.h" #include "Magnum/Math/Matrix3.h" #include "Magnum/Math/Matrix4.h" #include "Magnum/SceneGraph/AbstractFeature.h" @@ -150,9 +149,7 @@ template class AbstractCamera: public AbstractF } #ifndef DOXYGEN_GENERATING_OUTPUT - void fixAspectRatio() { - _projectionMatrix = Implementation::aspectRatioFix(_aspectRatioPolicy, {Math::abs(rawProjectionMatrix[0].x()), Math::abs(rawProjectionMatrix[1].y())}, _viewport)*rawProjectionMatrix; - } + void fixAspectRatio(); MatrixTypeFor rawProjectionMatrix; AspectRatioPolicy _aspectRatioPolicy; diff --git a/src/Magnum/SceneGraph/AbstractCamera.hpp b/src/Magnum/SceneGraph/AbstractCamera.hpp index e6ee5e88e..7ec09b488 100644 --- a/src/Magnum/SceneGraph/AbstractCamera.hpp +++ b/src/Magnum/SceneGraph/AbstractCamera.hpp @@ -29,6 +29,7 @@ * @brief @ref compilation-speedup-hpp "Template implementation" for @ref AbstractCamera.h */ +#include "Magnum/Math/Functions.h" #include "Magnum/SceneGraph/AbstractCamera.h" #include "Magnum/SceneGraph/Drawable.h" @@ -60,6 +61,10 @@ template AbstractCamera::Abstrac template AbstractCamera::~AbstractCamera() = default; +template void AbstractCamera::fixAspectRatio() { + _projectionMatrix = Implementation::aspectRatioFix(_aspectRatioPolicy, {Math::abs(rawProjectionMatrix[0].x()), Math::abs(rawProjectionMatrix[1].y())}, _viewport)*rawProjectionMatrix; +} + template AbstractCamera& AbstractCamera::setAspectRatioPolicy(AspectRatioPolicy policy) { _aspectRatioPolicy = policy; fixAspectRatio();