#include "Camera_Test.h" CPPUNIT_TEST_SUITE_REGISTRATION(Camera_Test); #include "camera.h" void Camera_Test::test_camera_definition() { CameraDefinition* cam; cam = cameraCreateDefinition(); cameraSetLocationCoords(cam, 0.0, 1.0, 1.0); cameraSetTargetCoords(cam, 0.0, 0.0, 0.0); ck_assert_vector_values(cameraGetLocation(cam), 0.0, 1.0, 1.0); ck_assert_vector_values(cameraGetTarget(cam), 0.0, 0.0, 0.0); cameraDeleteDefinition(cam); } void Camera_Test::test_camera_projection() { CameraDefinition* cam; cam = cameraCreateDefinition(); cameraSetLocationCoords(cam, 0.0, 1.0, 1.0); cameraSetTargetCoords(cam, 0.0, 0.0, 0.0); /* Test the reversibility of projection */ Vector3 point = cameraProject(cam, v3(12.0, 5.2, -6.3)); point = cameraUnproject(cam, point); ck_assert_vector_values(point, 12.0, 5.2, -6.3); point = cameraProject(cam, v3(-25.1, 8.3, 1.3)); point = cameraUnproject(cam, point); ck_assert_vector_values(point, -25.1, 8.3, 1.3); cameraDeleteDefinition(cam); } void Camera_Test::test_camera_depth() { CameraDefinition* cam; cam = cameraCreateDefinition(); cameraSetLocationCoords(cam, 0.0, 0.0, 0.0); cameraSetTargetCoords(cam, 1.0, 0.0, 0.0); /* Test the real depth getter */ Vector3 point = cameraProject(cam, v3(12.5, 0.0, 0.0)); ck_assert_double_eq(cameraGetRealDepth(cam, point), 12.5); point = cameraProject(cam, v3(12.5, 8.0, -3.0)); ck_assert_double_eq(cameraGetRealDepth(cam, point), 12.5); point = cameraProject(cam, v3(12.5, 12.0, 58.0)); ck_assert_double_eq(cameraGetRealDepth(cam, point), 12.5); cameraDeleteDefinition(cam); }