SPROUT_CONSTEXPR color_type operator()(Intersection const& inter, Objects const& objs) const { return shade_1( inter, objs, sprout::darkroom::coords::sub( pos_, sprout::darkroom::intersects::point_of_intersection(inter) ) ); }
SPROUT_CONSTEXPR color_type operator()(Intersection const& inter, Objects const& objs) const { return shade_1( inter, sprout::darkroom::objects::intersect_list( objs, sprout::darkroom::rays::make_ray( sprout::darkroom::coords::add( sprout::darkroom::coords::scale( dir_, sprout::numeric_limits<unit_type>::epsilon() * 256 ), sprout::darkroom::intersects::point_of_intersection(inter) ), dir_ ) ) ); }
SPROUT_CONSTEXPR color_type operator()(Intersection const& inter, Objects const& objs) const { return shade_1(inter, objs, sprout::index_range<0, sizeof...(Lights)>::make()); }