22 init_unscaled_xform();
23 _input_xform = _unscaled_xform;
34 int table_size,
unsigned long seed) :
37 init_unscaled_xform();
48 _unscaled_xform(copy._unscaled_xform),
49 _input_xform(copy._input_xform)
59 PerlinNoise::operator = (copy);
60 _unscaled_xform = copy._unscaled_xform;
61 _input_xform = copy._input_xform;
93 _input_xform = LMatrix4d::scale_mat(1.0f / value[0], 1.0f / value[1], 1.0f / value[2]) * _unscaled_xform;
100 noise(
double x,
double y,
double z)
const {
101 return noise(LVecBase3d(x, y, z));
108 noise(
const LVecBase3f &value)
const {
109 return (
float)
noise(value[0], value[1], value[2]);
117 return noise(x, y, z);
140 INLINE
double PerlinNoise3::
141 grad(
int hash,
double x,
double y,
double z) {
153 case 0:
return x + y;
154 case 1:
return -x + y;
155 case 2:
return x - y;
156 case 3:
return -x - y;
158 case 4:
return x + z;
159 case 5:
return -x + z;
160 case 6:
return x - z;
161 case 7:
return -x - z;
163 case 8:
return y + z;
164 case 9:
return -y + z;
165 case 10:
return y - z;
166 case 11:
return -y - z;
168 case 12:
return x + y;
169 case 13:
return -y + z;
170 case 14:
return -x + y;
171 case 15:
return -y - z;
This is the base class for PerlinNoise2 and PerlinNoise3, different dimensions of Perlin noise implem...
void operator=(const PerlinNoise3 ©)
Makes an exact copy of the existing PerlinNoise object, including its random seed.
PerlinNoise3()
Randomizes the tables to make a unique noise function.
This class provides an implementation of Perlin noise for 3 variables.
void set_scale(double scale)
Changes the scale (frequency) of the noise.
double operator()(double x, double y, double z) const
Returns the noise function of the three inputs.
double noise(double x, double y, double z) const
Returns the noise function of the three inputs.