From ab2182d5e9c918782c7a39c3546af7b570067895 Mon Sep 17 00:00:00 2001 From: Yoel <s73017@beuth-hochschule.de> Date: Tue, 6 Oct 2020 17:26:39 +0200 Subject: [PATCH] New files Random, which include the rand-stuff prev. in material --- RayTracer/tools/Random.cpp | 20 ++++++++++++++++++++ RayTracer/tools/Random.h | 15 +++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 RayTracer/tools/Random.cpp create mode 100644 RayTracer/tools/Random.h diff --git a/RayTracer/tools/Random.cpp b/RayTracer/tools/Random.cpp new file mode 100644 index 0000000..6e68585 --- /dev/null +++ b/RayTracer/tools/Random.cpp @@ -0,0 +1,20 @@ +#include "Random.h" + +namespace util { + +Vec3 rand_vec3() { + return Vec3(dis(gen), dis(gen), dis(gen)); +} + +bool in_circle(const Vec3& v) { + return v.length() <= 1; +} + +Vec3 rand_vec3_in_circle(float r) { + Vec3 result; + do { + result = rand_vec3(); + } while (!in_circle(result)); + return result * r; +} +} // namespace util \ No newline at end of file diff --git a/RayTracer/tools/Random.h b/RayTracer/tools/Random.h new file mode 100644 index 0000000..dfc8b4f --- /dev/null +++ b/RayTracer/tools/Random.h @@ -0,0 +1,15 @@ +#pragma once + +#include <random> + +#include "Vec3.h" + +namespace util { + +static std::random_device rd; +static std::mt19937 gen(rd()); +static std::uniform_real_distribution<> dis(-1.0, 1.0); +Vec3 rand_vec3(); +bool in_circle(const Vec3& v); +Vec3 rand_vec3_in_circle(float r); +} // namespace util -- GitLab