[WIP] Add reflective parameter into material
This commit is contained in:
@@ -32,3 +32,41 @@
|
||||
using namespace Raytracer;
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
SCENARIO("Reflectivity for the default material", "[features/materials.feature]")
|
||||
{
|
||||
GIVEN("m <- material()")
|
||||
{
|
||||
Material m;
|
||||
THEN("m.reflective = 0.0")
|
||||
{
|
||||
REQUIRE(m.reflective() == 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
SCENARIO("Precomputing the reflection vector", "[features/intersections.feature]")
|
||||
{
|
||||
GIVEN("shape <- plane()")
|
||||
{
|
||||
Plane shape;
|
||||
AND_GIVEN("r <- ray(point(0, 1, -1), vector(0, -sqrt(2)/2, sqrt(2)/2))")
|
||||
{
|
||||
Ray r(Tuple::Point(0, 1, -1), Tuple::Vector(0, -sqrt(2) / 2, sqrt(2) / 2));
|
||||
AND_GIVEN("i <- intersection(sqrt(2), shape)")
|
||||
{
|
||||
Intersection i(sqrt(2), &shape);
|
||||
WHEN("comps <- prepare_computation(i, r)")
|
||||
{
|
||||
IntersectionData comps = i.prepare_computations(r);
|
||||
THEN("comps.reflectv = vector(0, sqrt(2) / 2, sqrt(2) / 2)")
|
||||
{
|
||||
REQUIRE(comps.reflectv() == Tuple::Vector(0, sqrt(2) / 2, sqrt(2) / 2));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user