[WIP] Add Camera
This commit is contained in:
@@ -503,3 +503,69 @@ SCENARIO("An arbitrary view transformation", "[features/transformations.feature]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
SCENARIO("Constructing a camera", "[features/camera.feature]")
|
||||
{
|
||||
GIVEN("hsize <- 160")
|
||||
{
|
||||
uint16_t hsize = 160;
|
||||
AND_GIVEN("vsize <- 120")
|
||||
{
|
||||
uint16_t vsize = 120;
|
||||
AND_GIVEN("field_of_view <- pi / 2")
|
||||
{
|
||||
double field_of_view = std::numbers::pi / 2;
|
||||
WHEN("c <- camera(hsize, vsize,field_of_view)")
|
||||
{
|
||||
Camera c(hsize, vsize, field_of_view);
|
||||
THEN("c.hsize = 160")
|
||||
{
|
||||
REQUIRE(c.hsize() == 160);
|
||||
}
|
||||
AND_THEN("c.vsize = 120")
|
||||
{
|
||||
REQUIRE(c.vsize() == 120);
|
||||
}
|
||||
AND_THEN("c.field_of_view = pi / 2")
|
||||
{
|
||||
REQUIRE(c.field_of_view() == std::numbers::pi / 2);
|
||||
}
|
||||
AND_THEN("c.transform = identity_matrix")
|
||||
{
|
||||
REQUIRE(c.transform() == Matrix::identity());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
SCENARIO("The pixel size for a horizontal canvas", "[features/camera.feature]")
|
||||
{
|
||||
GIVEN("c <- camera(200, 125, pi/2)")
|
||||
{
|
||||
Camera c(200, 125, std::numbers::pi / 2);
|
||||
THEN("c.pixel_size = 0.01")
|
||||
{
|
||||
REQUIRE(c.pixel_size() == 0.01);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
SCENARIO("The pixel size for a vertical canvas", "[features/camera.feature]")
|
||||
{
|
||||
GIVEN("c <- camera(125, 200, pi/2)")
|
||||
{
|
||||
Camera c(125, 200, std::numbers::pi / 2);
|
||||
THEN("c.pixel_size = 0.01")
|
||||
{
|
||||
REQUIRE(c.pixel_size() == 0.01);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user