From e804ccba1a602c14263c724d077c06a0f4110204 Mon Sep 17 00:00:00 2001 From: Yoel <s73017@beuth-hochschule.de> Date: Sun, 14 Feb 2021 15:25:51 +0100 Subject: [PATCH] Change in Interface necessitates change of deriven classes --- RayTracer/material/BackgroundMaterial.cpp | 7 ++++--- RayTracer/material/BackgroundMaterial.h | 4 ++-- RayTracer/material/DiffuseMaterial.cpp | 8 ++++---- RayTracer/material/DiffuseMaterial.h | 4 ++-- RayTracer/material/ReflectiveMaterial.cpp | 9 +++++---- RayTracer/material/ReflectiveMaterial.h | 4 ++-- 6 files changed, 19 insertions(+), 17 deletions(-) diff --git a/RayTracer/material/BackgroundMaterial.cpp b/RayTracer/material/BackgroundMaterial.cpp index fa967d0..e80bf36 100644 --- a/RayTracer/material/BackgroundMaterial.cpp +++ b/RayTracer/material/BackgroundMaterial.cpp @@ -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 { diff --git a/RayTracer/material/BackgroundMaterial.h b/RayTracer/material/BackgroundMaterial.h index c6594c4..61e17d2 100644 --- a/RayTracer/material/BackgroundMaterial.h +++ b/RayTracer/material/BackgroundMaterial.h @@ -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; diff --git a/RayTracer/material/DiffuseMaterial.cpp b/RayTracer/material/DiffuseMaterial.cpp index ce46f4b..e24430c 100644 --- a/RayTracer/material/DiffuseMaterial.cpp +++ b/RayTracer/material/DiffuseMaterial.cpp @@ -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 { diff --git a/RayTracer/material/DiffuseMaterial.h b/RayTracer/material/DiffuseMaterial.h index fe4b5a1..dcda0b8 100644 --- a/RayTracer/material/DiffuseMaterial.h +++ b/RayTracer/material/DiffuseMaterial.h @@ -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; diff --git a/RayTracer/material/ReflectiveMaterial.cpp b/RayTracer/material/ReflectiveMaterial.cpp index d32cb33..08754c9 100644 --- a/RayTracer/material/ReflectiveMaterial.cpp +++ b/RayTracer/material/ReflectiveMaterial.cpp @@ -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 { diff --git a/RayTracer/material/ReflectiveMaterial.h b/RayTracer/material/ReflectiveMaterial.h index 8c005e5..69c6dcc 100644 --- a/RayTracer/material/ReflectiveMaterial.h +++ b/RayTracer/material/ReflectiveMaterial.h @@ -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; -- GitLab