diff --git a/simplex.lua b/simplex.lua index 2e90a8d..e10e60a 100644 --- a/simplex.lua +++ b/simplex.lua @@ -539,4 +539,21 @@ function simplex.Turbulence(func, direction, iter, ...) return math.sin(dir_component+ret) end -return simplex \ No newline at end of file +function simplex.Seed(seed) + math.randomseed(seed) + local integers = {} + perm = {} + for i = 1, 256 do + integers[i] = i + end + while next(integers) do + perm[#perm + 1] = table.remove(integers, math.random(1, #integers)) + end + perm[0] = perm[#perm] + perm[#perm] = nil + for i=0,255 do + perm[i+256] = perm[i] + end +end + +return simplex