diff --git a/examples/js/SimplexNoise.js b/examples/js/SimplexNoise.js index 5f8548749544c16d7d3ae87d6d54677498cc7975..0638192fcbf4a531170f45cedd4d8a7850228d8d 100644 --- a/examples/js/SimplexNoise.js +++ b/examples/js/SimplexNoise.js @@ -53,6 +53,14 @@ SimplexNoise.prototype.dot = function(g, x, y) { return g[0]*x + g[1]*y; }; +SimplexNoise.prototype.dot3 = function(g, x, y, z) { + return g[0]*x + g[1]*y + g[2]*z; +} + +SimplexNoise.prototype.dot4 = function(g, x, y, z, w) { + return g[0]*x + g[1]*y + g[2]*z + g[3]*w; +}; + SimplexNoise.prototype.noise = function(xin, yin) { var n0, n1, n2; // Noise contributions from the three corners // Skew the input space to determine which simplex cell we're in @@ -166,25 +174,25 @@ SimplexNoise.prototype.noise3d = function(xin, yin, zin) { if(t0<0) n0 = 0.0; else { t0 *= t0; - n0 = t0 * t0 * this.dot(this.grad3[gi0], x0, y0, z0); + n0 = t0 * t0 * this.dot3(this.grad3[gi0], x0, y0, z0); } var t1 = 0.6 - x1*x1 - y1*y1 - z1*z1; if(t1<0) n1 = 0.0; else { t1 *= t1; - n1 = t1 * t1 * this.dot(this.grad3[gi1], x1, y1, z1); + n1 = t1 * t1 * this.dot3(this.grad3[gi1], x1, y1, z1); } var t2 = 0.6 - x2*x2 - y2*y2 - z2*z2; if(t2<0) n2 = 0.0; else { t2 *= t2; - n2 = t2 * t2 * this.dot(this.grad3[gi2], x2, y2, z2); + n2 = t2 * t2 * this.dot3(this.grad3[gi2], x2, y2, z2); } var t3 = 0.6 - x3*x3 - y3*y3 - z3*z3; if(t3<0) n3 = 0.0; else { t3 *= t3; - n3 = t3 * t3 * this.dot(this.grad3[gi3], x3, y3, z3); + n3 = t3 * t3 * this.dot3(this.grad3[gi3], x3, y3, z3); } // Add contributions from each corner to get the final noise value. // The result is scaled to stay just inside [-1,1] @@ -286,30 +294,30 @@ SimplexNoise.prototype.noise4d = function( x, y, z, w ) { if(t0<0) n0 = 0.0; else { t0 *= t0; - n0 = t0 * t0 * this.dot(grad4[gi0], x0, y0, z0, w0); + n0 = t0 * t0 * this.dot4(grad4[gi0], x0, y0, z0, w0); } var t1 = 0.6 - x1*x1 - y1*y1 - z1*z1 - w1*w1; if(t1<0) n1 = 0.0; else { t1 *= t1; - n1 = t1 * t1 * this.dot(grad4[gi1], x1, y1, z1, w1); + n1 = t1 * t1 * this.dot4(grad4[gi1], x1, y1, z1, w1); } var t2 = 0.6 - x2*x2 - y2*y2 - z2*z2 - w2*w2; if(t2<0) n2 = 0.0; else { t2 *= t2; - n2 = t2 * t2 * this.dot(grad4[gi2], x2, y2, z2, w2); + n2 = t2 * t2 * this.dot4(grad4[gi2], x2, y2, z2, w2); } var t3 = 0.6 - x3*x3 - y3*y3 - z3*z3 - w3*w3; if(t3<0) n3 = 0.0; else { t3 *= t3; - n3 = t3 * t3 * this.dot(grad4[gi3], x3, y3, z3, w3); + n3 = t3 * t3 * this.dot4(grad4[gi3], x3, y3, z3, w3); } var t4 = 0.6 - x4*x4 - y4*y4 - z4*z4 - w4*w4; if(t4<0) n4 = 0.0; else { t4 *= t4; - n4 = t4 * t4 * this.dot(grad4[gi4], x4, y4, z4, w4); + n4 = t4 * t4 * this.dot4(grad4[gi4], x4, y4, z4, w4); } // Sum up and scale the result to cover the range [-1,1] return 27.0 * (n0 + n1 + n2 + n3 + n4);