int LuaPerlinNoise::l_get3d(lua_State *L) { LuaPerlinNoise *o = checkobject(L, 1); v3f pos3d = read_v3f(L,2); lua_Number val = noise3d_perlin(pos3d.X/o->scale, pos3d.Y/o->scale, pos3d.Z/o->scale, o->seed, o->octaves, o->persistence); lua_pushnumber(L, val); return 1; }
double noise3d_param(const OldNoiseParams ¶m, double x, double y, double z) { double s = param.pos_scale; x /= s; y /= s; z /= s; if(param.type == OLDNOISE_CONSTANT_ONE) { return 1.0; } else if(param.type == OLDNOISE_PERLIN) { return param.noise_scale*noise3d_perlin(x,y,z, param.seed, param.octaves, param.persistence); } else if(param.type == OLDNOISE_PERLIN_ABS) { return param.noise_scale*noise3d_perlin_abs(x,y,z, param.seed, param.octaves, param.persistence); } else if(param.type == OLDNOISE_PERLIN_CONTOUR) { return contour(param.noise_scale*noise3d_perlin(x,y,z, param.seed, param.octaves, param.persistence)); } else if(param.type == OLDNOISE_PERLIN_CONTOUR_FLIP_YZ) { return contour(param.noise_scale*noise3d_perlin(x,z,y, param.seed, param.octaves, param.persistence)); } else assert(0); }