Skip to content
Snippets Groups Projects
Commit e804ccba authored by Yoel's avatar Yoel
Browse files

Change in Interface necessitates change of deriven classes

parent b4ded92d
No related branches found
No related tags found
No related merge requests found
......@@ -10,11 +10,12 @@ BackgroundMaterial::BackgroundMaterial(
BackgroundMaterial::BackgroundMaterial(const util::Vec3& albedo)
: texture(std::make_shared<Constant>(albedo)) {
}
util::Vec3 BackgroundMaterial::albedo(float texel_x, float texel_y) const {
util::Vec3 BackgroundMaterial::albedo(const std::pair<float, float>& uv) const {
return util::Vec3(1, 1, 1);
}
util::Vec3 BackgroundMaterial::emission(float texel_x, float texel_y) const {
return texture->color(texel_x, texel_y);
util::Vec3 BackgroundMaterial::emission(
const std::pair<float, float>& uv) const {
return texture->color(uv.first, uv.second);
}
util::Vec3 BackgroundMaterial::scattered_d(const util::Vec3& d,
const util::Vec3& n) const {
......
......@@ -8,8 +8,8 @@ class BackgroundMaterial : public Material {
BackgroundMaterial(const std::shared_ptr<util::Sampler>& texture);
BackgroundMaterial(const util::Vec3& albedo);
util::Vec3 albedo(float texel_x, float texel_y) const override;
util::Vec3 emission(float texel_x, float texel_y) const override;
util::Vec3 albedo(const std::pair<float, float>& uv) const override;
util::Vec3 emission(const std::pair<float, float>& uv) const override;
util::Vec3 scattered_d(const util::Vec3& d,
const util::Vec3& n) const override;
bool scatter(const util::Vec3& d, const util::Vec3& n) const override;
......
......@@ -25,11 +25,11 @@ DiffuseMaterial::DiffuseMaterial(const util::Vec3& color)
emission_texture(
std::make_shared<Constant>(Constant(util::Vec3(0, 0, 0)))) {
}
util::Vec3 DiffuseMaterial::albedo(float texel_x, float texel_y) const {
return albedo_texture->color(texel_x, texel_y);
util::Vec3 DiffuseMaterial::albedo(const std::pair<float, float>& uv) const {
return albedo_texture->color(uv.first, uv.second);
}
util::Vec3 DiffuseMaterial::emission(float texel_x, float texel_y) const {
return emission_texture->color(texel_x, texel_y);
util::Vec3 DiffuseMaterial::emission(const std::pair<float, float>& uv) const {
return emission_texture->color(uv.first, uv.second);
}
util::Vec3 DiffuseMaterial::scattered_d(const util::Vec3& d,
const util::Vec3& n) const {
......
......@@ -10,8 +10,8 @@ class DiffuseMaterial : public Material {
DiffuseMaterial(const std::shared_ptr<util::Sampler>& albedo);
DiffuseMaterial(const util::Vec3& color);
util::Vec3 albedo(float texel_x, float texel_y) const override;
util::Vec3 emission(float texel_x, float texel_y) const override;
util::Vec3 albedo(const std::pair<float, float>& uv) const override;
util::Vec3 emission(const std::pair<float, float>& uv) const override;
util::Vec3 scattered_d(const util::Vec3& d,
const util::Vec3& n) const override;
bool scatter(const util::Vec3& d, const util::Vec3& n) const override;
......
......@@ -27,11 +27,12 @@ ReflectiveMaterial::ReflectiveMaterial(const util::Vec3& color, float clearness)
std::make_shared<Constant>(Constant(util::Vec3(0, 0, 0)))),
clearness(clearness) {
}
util::Vec3 ReflectiveMaterial::albedo(float texel_x, float texel_y) const {
return albedo_texture->color(texel_x, texel_y);
util::Vec3 ReflectiveMaterial::albedo(const std::pair<float, float>& uv) const {
return albedo_texture->color(uv.first, uv.second);
}
util::Vec3 ReflectiveMaterial::emission(float texel_x, float texel_y) const {
return emission_texture->color(texel_x, texel_y);
util::Vec3 ReflectiveMaterial::emission(
const std::pair<float, float>& uv) const {
return emission_texture->color(uv.first, uv.second);
}
util::Vec3 ReflectiveMaterial::scattered_d(const util::Vec3& d,
const util::Vec3& n) const {
......
......@@ -12,8 +12,8 @@ class ReflectiveMaterial : public Material {
float clearness);
ReflectiveMaterial(const util::Vec3& color, float clearness);
util::Vec3 albedo(float texel_x, float texel_y) const override;
util::Vec3 emission(float texel_x, float texel_y) const override;
util::Vec3 albedo(const std::pair<float, float>& uv) const override;
util::Vec3 emission(const std::pair<float, float>& uv) const override;
util::Vec3 scattered_d(const util::Vec3& d,
const util::Vec3& n) const override;
bool scatter(const util::Vec3& d, const util::Vec3& n) const override;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment