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