From 8a5e7abd30021418d6a86328080eb0a5e18ef506 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 20 Aug 2012 11:57:19 +0200 Subject: [PATCH] SceneGraph: added tests for 2D projection and default projections. --- src/SceneGraph/Test/CameraTest.cpp | 31 ++++++++++++++++++++++++++++-- src/SceneGraph/Test/CameraTest.h | 3 +++ 2 files changed, 32 insertions(+), 2 deletions(-) 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(); };