diff --git a/src/SceneGraph/Test/CameraTest.cpp b/src/SceneGraph/Test/CameraTest.cpp index d2c514b09..9d89a0365 100644 --- a/src/SceneGraph/Test/CameraTest.cpp +++ b/src/SceneGraph/Test/CameraTest.cpp @@ -23,6 +23,9 @@ namespace Magnum { namespace SceneGraph { namespace Test { CameraTest::CameraTest() { addTests(&CameraTest::fixAspectRatio, + &CameraTest::defaultProjection2D, + &CameraTest::defaultProjection3D, + &CameraTest::projection2D, &CameraTest::orthographic, &CameraTest::perspective); } @@ -69,9 +72,32 @@ void CameraTest::fixAspectRatio() { CORRADE_COMPARE(Implementation::aspectRatioFix(Implementation::AspectRatioPolicy::Extend, projectionSize, size), expectedExtendRectangle); } +void CameraTest::defaultProjection2D() { + Camera2D camera; + CORRADE_COMPARE(camera.projectionMatrix(), Matrix3()); +} + +void CameraTest::defaultProjection3D() { + Camera3D camera; + CORRADE_COMPARE(camera.projectionMatrix(), Matrix4()); +} + +void CameraTest::projection2D() { + Vector2 projectionSize(4.0f, 3.0f); + Camera2D camera; + camera.setProjection(projectionSize); + + Matrix3 a(2.0f/4.0f, 0.0f, 0.0f, + 0.0f, 2.0f/3.0f, 0.0f, + 0.0f, 0.0f, 1.0f); + + CORRADE_COMPARE(camera.projectionMatrix(), a); +} + void CameraTest::orthographic() { + Vector2 projectionSize(5); Camera3D camera; - camera.setOrthographic(Vector2(5), 1, 9); + camera.setOrthographic(projectionSize, 1, 9); Matrix4 a(0.4f, 0.0f, 0.0f, 0.0f, 0.0f, 0.4f, 0.0f, 0.0f, @@ -80,7 +106,8 @@ void CameraTest::orthographic() { CORRADE_COMPARE(camera.projectionMatrix(), a); - camera.setOrthographic(Vector2(5.0f, 4.0f), 1, 9); + Vector2 projectionSizeRectangle(5.0f, 4.0f); + camera.setOrthographic(projectionSizeRectangle, 1, 9); Matrix4 rectangle(0.4f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, diff --git a/src/SceneGraph/Test/CameraTest.h b/src/SceneGraph/Test/CameraTest.h index f460c241f..2bf0e93b5 100644 --- a/src/SceneGraph/Test/CameraTest.h +++ b/src/SceneGraph/Test/CameraTest.h @@ -24,6 +24,9 @@ class CameraTest: public Corrade::TestSuite::Tester { CameraTest(); void fixAspectRatio(); + void defaultProjection2D(); + void defaultProjection3D(); + void projection2D(); void orthographic(); void perspective(); };