From e159653b578819900a4128adcbfd1a44cc67b6e4 Mon Sep 17 00:00:00 2001 From: Christophe Riccio Date: Wed, 27 Apr 2011 19:50:39 +0100 Subject: [PATCH] Fixed build error --- glm/gtx/noise.inl | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/glm/gtx/noise.inl b/glm/gtx/noise.inl index ec35fa80..6b8077c9 100644 --- a/glm/gtx/noise.inl +++ b/glm/gtx/noise.inl @@ -90,17 +90,17 @@ namespace noise } template - GLM_FUNC_QUALIFIER T snoise(glm::detail::tvec3 const & v) + GLM_FUNC_QUALIFIER T snoise(detail::tvec3 const & v) { detail::tvec2 const C = detail::tvec2(1.0 / 6.0, 1.0 / 3.0); detail::tvec4 const D = detail::tvec4(0.0, 0.5, 1.0, 2.0); // First corner - detail::tvec3 i = floor(v + dot(v, C.y)); - detail::tvec3 x0 = v - i + dot(i, C.x); + detail::tvec3 i = floor(v + dot(v, detail::tvec3(C.y))); + detail::tvec3 x0 = v - i + dot(i, detail::tvec3(C.x)); // Other corners - detail::tvec3 g = step(x0.yzx, x0.xyz); + detail::tvec3 g = step(detail::tvec3(x0.y, x0.z, x0.x), detail::tvec3(x0.x, x0.y, x0.z)); detail::tvec3 l = T(1) - g; detail::tvec3 i1 = min(detail::tvec3(g.x, g.y, g.z), detail::tvec3(l.z, l.x, l.y)); detail::tvec3 i2 = max(detail::tvec3(g.x, g.y, g.z), detail::tvec3(l.z, l.x, l.y)); @@ -146,10 +146,10 @@ namespace noise detail::tvec4 a0 = b0 + s0 * detail::tvec4(sh.x, sh.x, sh.y, sh.y); detail::tvec4 a1 = b1 + s1 * detail::tvec4(sh.z, sh.z, sh.w, sh.w); - detail::tvec3 p0 = vec3(a0.xy, h.x); - detail::tvec3 p1 = vec3(a0.zw, h.y); - detail::tvec3 p2 = vec3(a1.xy, h.z); - detail::tvec3 p3 = vec3(a1.zw, h.w); + detail::tvec3 p0 = vec3(a0.x, a0.y, h.x); + detail::tvec3 p1 = vec3(a0.z, a0.w, h.y); + detail::tvec3 p2 = vec3(a1.x, a1.y, h.z); + detail::tvec3 p3 = vec3(a1.z, a1.w, h.w); //Normalise gradients detail::tvec4 norm = taylorInvSqrt(detail::tvec4( @@ -200,11 +200,14 @@ namespace noise detail::tvec3 isX = step(detail::tvec3(x0.y, x0.z, x0.w), detail::tvec3(x0.x)); detail::tvec3 isYZ = step(detail::tvec3(x0.z, x0.w, x0.w), detail::tvec3(x0.y, x0.y, x0.z)); // i0.x = dot(isX, vec3(1.0)); - i0.x = isX.x + isX.y + isX.z; - i0.yzw = 1.0 - isX; + //i0.x = isX.x + isX.y + isX.z; + //i0.yzw = T(1) - isX; + i0 = detail::tvec4(isX.x + isX.y + isX.z, T(1) - isX); // i0.y += dot(isYZ.xy, vec2(1.0)); i0.y += isYZ.x + isYZ.y; - i0.zw += 1.0 - detail::tvec2(isYZ.x, isYZ.y); + //i0.zw += 1.0 - detail::tvec2(isYZ.x, isYZ.y); + i0.z += 1.0 - detail::tvec2(isYZ.x, isYZ.y); + i0.w += 1.0 - detail::tvec2(isYZ.x, isYZ.y); i0.z += isYZ.z; i0.w += 1.0 - isYZ.z; @@ -296,7 +299,7 @@ namespace noise T n01 = dot(g01, detail::tvec2(fx.z, fy.z)); T n11 = dot(g11, detail::tvec2(fx.w, fy.w)); - detail::tvec2 fade_xy = fade(Pf.xy); + detail::tvec2 fade_xy = fade(detail::tvec2(Pf.x, Pf.y)); detail::tvec2 n_x = mix(detail::tvec2(n00, n01), detail::tvec2(n10, n11), fade_xy.x); T n_xy = mix(n_x.x, n_x.y, fade_xy.y); return T(2.3) * n_xy;