Browse Source

SceneGraph: added tests for 2D projection and default projections.

pull/279/head
Vladimír Vondruš 14 years ago
parent
commit
8a5e7abd30
  1. 31
      src/SceneGraph/Test/CameraTest.cpp
  2. 3
      src/SceneGraph/Test/CameraTest.h

31
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<Matrix4>(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,

3
src/SceneGraph/Test/CameraTest.h

@ -24,6 +24,9 @@ class CameraTest: public Corrade::TestSuite::Tester<CameraTest> {
CameraTest();
void fixAspectRatio();
void defaultProjection2D();
void defaultProjection3D();
void projection2D();
void orthographic();
void perspective();
};

Loading…
Cancel
Save