Skip to content

Commit 208cdbe

Browse files
committed
Tests for IsValidCamera function.
1 parent dfa1a64 commit 208cdbe

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

Sources/EngineTest/CameraTest.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#include "SimpleTest.hpp"
2+
#include "Camera.hpp"
3+
4+
using namespace Modeler;
5+
6+
namespace CameraTest
7+
{
8+
9+
TEST (IsValidCameraTest)
10+
{
11+
ASSERT (IsValidCamera (glm::dvec3 (3.0, 2.0, 1.0), glm::dvec3 (0.0, 0.0, 0.0), glm::dvec3 (0.0, 0.0, 1.0), 45.0, 0.1, 100.0));
12+
ASSERT (!IsValidCamera (glm::dvec3 (0.0, 0.0, 0.0), glm::dvec3 (0.0, 0.0, 0.0), glm::dvec3 (0.0, 0.0, 1.0), 45.0, 0.1, 100.0));
13+
ASSERT (!IsValidCamera (glm::dvec3 (3.0, 2.0, 1.0), glm::dvec3 (0.0, 0.0, 0.0), glm::dvec3 (0.0, 0.0, 0.0), 45.0, 0.1, 100.0));
14+
ASSERT (!IsValidCamera (glm::dvec3 (0.0, 0.0, 1.0), glm::dvec3 (0.0, 0.0, 0.0), glm::dvec3 (0.0, 0.0, 1.0), 45.0, 0.1, 100.0));
15+
ASSERT (!IsValidCamera (glm::dvec3 (0.0, 0.0, -1.0), glm::dvec3 (0.0, 0.0, 0.0), glm::dvec3 (0.0, 0.0, 1.0), 45.0, 0.1, 100.0));
16+
ASSERT (!IsValidCamera (glm::dvec3 (3.0, 2.0, 1.0), glm::dvec3 (0.0, 0.0, 0.0), glm::dvec3 (0.0, 0.0, 1.0), -45.0, 0.1, 100.0));
17+
ASSERT (!IsValidCamera (glm::dvec3 (3.0, 2.0, 1.0), glm::dvec3 (0.0, 0.0, 0.0), glm::dvec3 (0.0, 0.0, 1.0), 0.0, 0.1, 100.0));
18+
ASSERT (!IsValidCamera (glm::dvec3 (3.0, 2.0, 1.0), glm::dvec3 (0.0, 0.0, 0.0), glm::dvec3 (0.0, 0.0, 1.0), 45.0, -0.1, 100.0));
19+
ASSERT (!IsValidCamera (glm::dvec3 (3.0, 2.0, 1.0), glm::dvec3 (0.0, 0.0, 0.0), glm::dvec3 (0.0, 0.0, 1.0), 45.0, 0.1, -100.0));
20+
ASSERT (!IsValidCamera (glm::dvec3 (3.0, 2.0, 1.0), glm::dvec3 (0.0, 0.0, 0.0), glm::dvec3 (0.0, 0.0, 1.0), 45.0, 100.0, 10.0));
21+
}
22+
23+
}

Sources/Modeler/Camera.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,11 @@ bool IsValidCamera (const glm::dvec3& eye,
163163
return false;
164164
}
165165

166-
if (Geometry::IsZero (fieldOfViewY)) {
166+
if (!Geometry::IsPositive (fieldOfViewY)) {
167+
return false;
168+
}
169+
170+
if (!Geometry::IsPositive (nearPlane) || !Geometry::IsPositive (farPlane)) {
167171
return false;
168172
}
169173

0 commit comments

Comments
 (0)