From b2ae0a3ce9536029fb0e637eb4d7af8c9050cfc0 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Wed, 13 Apr 2011 22:30:20 +0100 Subject: [PATCH] Added detail code for simplex noise implementation --- glm/core/func_noise.inl | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/glm/core/func_noise.inl b/glm/core/func_noise.inl index c780534e..a8e700ec 100644 --- a/glm/core/func_noise.inl +++ b/glm/core/func_noise.inl @@ -12,6 +12,41 @@ namespace glm namespace core{ namespace function{ namespace noise{ + namespace detail + { + template + inline vecType permute + ( + vecType const & x0, + detail::tvec3 const & p + ) + { + vecType x1 = mod(x0 * p.y, p.x); + return floor( mod( (x1 + p.z) *x0, p.x )); + } + + inline detail::tvec2 permute + ( + detail::tvec2 const & x0, + detail::tvec3 const & p + ) + { + vec2 x1 = mod(x0 * p.y, p.x); + return floor( mod( (x1 + p.z) *x0, p.x )); + } + + inline vec3 permute(vec3 x0,vec3 p) + { + vec3 x1 = mod(x0 * p.y, p.x); + return floor( mod( (x1 + p.z) *x0, p.x )); + } + + inline vec4 permute(vec4 x0,vec3 p) + { + vec4 x1 = mod(x0 * p.y, p.x); + return floor( mod( (x1 + p.z) *x0, p.x )); + } + }//namespace detail // noise1 template