From 395df407934c1e1b7452272a02a22c96d63a9adf Mon Sep 17 00:00:00 2001 From: lisyarus Date: Sun, 13 Sep 2020 11:04:25 +0300 Subject: [PATCH] Add 2d generator sampling to pixmap --- libs/pcg/include/psemek/pcg/sample.hpp | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 libs/pcg/include/psemek/pcg/sample.hpp diff --git a/libs/pcg/include/psemek/pcg/sample.hpp b/libs/pcg/include/psemek/pcg/sample.hpp new file mode 100644 index 00000000..9443c155 --- /dev/null +++ b/libs/pcg/include/psemek/pcg/sample.hpp @@ -0,0 +1,29 @@ +#pragma once + +#include + +namespace psemek::pcg +{ + + template + auto sample(Gen && gen, std::size_t width, std::size_t height) + { + using R = decltype(gen(0.f, 0.f)); + + gfx::basic_pixmap result({width, height}); + + for (std::size_t j = 0; j < height; ++j) + { + for (std::size_t i = 0; i < width; ++i) + { + float ti = (i + 0.5f) / width; + float tj = (j + 0.5f) / height; + + result(i, j) = gen(ti, tj); + } + } + + return result; + } + +}