34void curlnoise(
double (*out)[3],
const double (*in)[3])
36 float delta = 0.0001f;
41 {
static_cast<float>((*in)[0]) + 000.0f,
static_cast<float>((*in)[1]) + 000.0f,
static_cast<float>((*in)[2]) + 000.0f },
42 {
static_cast<float>((*in)[0]) + 256.0f,
static_cast<float>((*in)[1]) - 256.0f,
static_cast<float>((*in)[2]) + 256.0f },
43 {
static_cast<float>((*in)[0]) - 512.0f,
static_cast<float>((*in)[1]) + 512.0f,
static_cast<float>((*in)[2]) - 512.0f },
48 a = (NoiseT::noise(p[2][0], p[2][1] + delta, p[2][2]) - NoiseT::noise(p[2][0], p[2][1] - delta, p[2][2])) / (2.0f * delta);
49 b = (NoiseT::noise(p[1][0], p[1][1], p[1][2] + delta) - NoiseT::noise(p[1][0], p[1][1], p[1][2] - delta)) / (2.0f * delta);
53 a = (NoiseT::noise(p[0][0], p[0][1], p[0][2] + delta) - NoiseT::noise(p[0][0], p[0][1], p[0][2] - delta)) / (2.0f * delta);
54 b = (NoiseT::noise(p[2][0] + delta, p[2][1], p[2][2]) - NoiseT::noise(p[2][0] - delta, p[2][1], p[2][2])) / (2.0f * delta);
58 a = (NoiseT::noise(p[1][0] + delta, p[1][1], p[1][2]) - NoiseT::noise(p[1][0] - delta, p[1][1], p[1][2])) / (2.0f * delta);
59 b = (NoiseT::noise(p[0][0], p[0][1] + delta, p[0][2]) - NoiseT::noise(p[0][0], p[0][1] - delta, p[0][2])) / (2.0f * delta);