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

Material is now purely an interface

parent 5e373e8e
No related branches found
No related tags found
No related merge requests found
#include "Material.h"
namespace material {
util::Vec3 rand_vec3() {
return util::Vec3(dis(gen), dis(gen), dis(gen));
}
bool in_circle(const util::Vec3& v) {
return v.length() <= 1;
}
util::Vec3 rand_vec3_in_circle(float r) {
util::Vec3 result;
do {
result = rand_vec3();
} while (!in_circle(result));
return result * r;
}
} // namespace material
\ No newline at end of file
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#include <random> #include <random>
#include "../sampling/Sampler.h" #include "../sampling/Sampler.h"
#include "../tools/Vec3.h"
namespace material { namespace material {
...@@ -14,11 +15,4 @@ class Material { ...@@ -14,11 +15,4 @@ class Material {
const util::Vec3& n) const = 0; const util::Vec3& n) const = 0;
virtual bool scatter() const = 0; virtual bool scatter() const = 0;
}; };
static std::random_device rd;
static std::mt19937 gen(rd());
static std::uniform_real_distribution<> dis(-1.0, 1.0);
util::Vec3 rand_vec3();
bool in_circle(const util::Vec3& v);
util::Vec3 rand_vec3_in_circle(float r);
} // namespace material } // namespace material
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