20#ifndef OPENVDB_AX_MATH_OPEN_SIMPLEX_NOISE_HAS_BEEN_INCLUDED
21#define OPENVDB_AX_MATH_OPEN_SIMPLEX_NOISE_HAS_BEEN_INCLUDED
23#include <openvdb/version.h>
33template <
typename NoiseT>
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);
64template <
typename NoiseT>
65void curlnoise(
double (*out)[3],
double x,
double y,
double z)
67 const double in[3] = {x, y, z};
117 template <
typename T>
118 T
eval(
const T x,
const T y,
const T z)
const;
122 template <
typename T>
123 inline T extrapolate(
const inttype xsb,
130 template <
typename T>
131 inline T extrapolate(
const inttype xsb,
141 static const int sGradients [72];
145 int mPermGradIndex [256];
OSNoise(inttype seed=0LL)
int64_t inttype
Definition OpenSimplexNoise.h:107
T eval(const T x, const T y, const T z) const
Definition OpenSimplexNoise.h:77
Definition OpenSimplexNoise.h:31
void curlnoise(double(*out)[3], const double(*in)[3])
Definition OpenSimplexNoise.h:34
Definition Exceptions.h:13
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition version.h.in:121
#define OPENVDB_USE_VERSION_NAMESPACE
Definition version.h.in:218