#include <vtkPerlinNoise.h>
vtkPerlinNoise computes a Perlin noise field as an implicit function. vtkPerlinNoise is a concrete implementation of vtkImplicitFunction. Perlin noise, originally described by Ken Perlin, is a non-periodic and continuous noise function useful for modeling real-world objects.
The amplitude and frequency of the noise pattern are adjustable. This implementation of Perlin noise is derived closely from Greg Ward's version in Graphics Gems II.
Definition at line 42 of file vtkPerlinNoise.h.
Public Types | |
typedef vtkImplicitFunction | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
void | PrintSelf (ostream &os, vtkIndent indent) |
void | EvaluateGradient (double x[3], double n[3]) |
double | EvaluateFunction (double x[3]) |
double | EvaluateFunction (double x, double y, double z) |
virtual void | SetFrequency (double, double, double) |
virtual void | SetFrequency (double[3]) |
virtual double * | GetFrequency () |
virtual void | GetFrequency (double data[3]) |
virtual void | SetPhase (double, double, double) |
virtual void | SetPhase (double[3]) |
virtual double * | GetPhase () |
virtual void | GetPhase (double data[3]) |
virtual void | SetAmplitude (double) |
virtual double | GetAmplitude () |
Static Public Member Functions | |
static int | IsTypeOf (const char *type) |
static vtkPerlinNoise * | SafeDownCast (vtkObject *o) |
static vtkPerlinNoise * | New () |
Protected Member Functions | |
vtkPerlinNoise () | |
~vtkPerlinNoise () | |
Protected Attributes | |
double | Frequency [3] |
double | Phase [3] |
double | Amplitude |
vtkPerlinNoise::vtkPerlinNoise | ( | ) | [protected] |
vtkPerlinNoise::~vtkPerlinNoise | ( | ) | [inline, protected] |
Definition at line 90 of file vtkPerlinNoise.h.
virtual const char* vtkPerlinNoise::GetClassName | ( | ) | [virtual] |
Reimplemented from vtkImplicitFunction.
static int vtkPerlinNoise::IsTypeOf | ( | const char * | name | ) | [static] |
Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkImplicitFunction.
virtual int vtkPerlinNoise::IsA | ( | const char * | name | ) | [virtual] |
Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkImplicitFunction.
static vtkPerlinNoise* vtkPerlinNoise::SafeDownCast | ( | vtkObject * | o | ) | [static] |
Reimplemented from vtkImplicitFunction.
void vtkPerlinNoise::PrintSelf | ( | ostream & | os, | |
vtkIndent | indent | |||
) | [virtual] |
Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from vtkImplicitFunction.
static vtkPerlinNoise* vtkPerlinNoise::New | ( | ) | [static] |
Instantiate the class.
Reimplemented from vtkObject.
double vtkPerlinNoise::EvaluateFunction | ( | double | x[3] | ) | [virtual] |
Evaluate PerlinNoise function.
Implements vtkImplicitFunction.
double vtkPerlinNoise::EvaluateFunction | ( | double | x, | |
double | y, | |||
double | z | |||
) | [inline] |
Evaluate PerlinNoise function.
Reimplemented from vtkImplicitFunction.
Definition at line 54 of file vtkPerlinNoise.h.
void vtkPerlinNoise::EvaluateGradient | ( | double | x[3], | |
double | n[3] | |||
) | [virtual] |
Evaluate PerlinNoise gradient. Currently, the method returns a 0 gradient.
Implements vtkImplicitFunction.
virtual void vtkPerlinNoise::SetFrequency | ( | double | , | |
double | , | |||
double | ||||
) | [virtual] |
Set/get the frequency, or physical scale, of the noise function (higher is finer scale). The frequency can be adjusted per axis, or the same for all axes.
virtual void vtkPerlinNoise::SetFrequency | ( | double | [3] | ) | [virtual] |
Set/get the frequency, or physical scale, of the noise function (higher is finer scale). The frequency can be adjusted per axis, or the same for all axes.
virtual double* vtkPerlinNoise::GetFrequency | ( | ) | [virtual] |
Set/get the frequency, or physical scale, of the noise function (higher is finer scale). The frequency can be adjusted per axis, or the same for all axes.
virtual void vtkPerlinNoise::GetFrequency | ( | double | data[3] | ) | [virtual] |
Set/get the frequency, or physical scale, of the noise function (higher is finer scale). The frequency can be adjusted per axis, or the same for all axes.
virtual void vtkPerlinNoise::SetPhase | ( | double | , | |
double | , | |||
double | ||||
) | [virtual] |
Set/get the phase of the noise function. This parameter can be used to shift the noise function within space (perhaps to avoid a beat with a noise pattern at another scale). Phase tends to repeat about every unit, so a phase of 0.5 is a half-cycle shift.
virtual void vtkPerlinNoise::SetPhase | ( | double | [3] | ) | [virtual] |
Set/get the phase of the noise function. This parameter can be used to shift the noise function within space (perhaps to avoid a beat with a noise pattern at another scale). Phase tends to repeat about every unit, so a phase of 0.5 is a half-cycle shift.
virtual double* vtkPerlinNoise::GetPhase | ( | ) | [virtual] |
Set/get the phase of the noise function. This parameter can be used to shift the noise function within space (perhaps to avoid a beat with a noise pattern at another scale). Phase tends to repeat about every unit, so a phase of 0.5 is a half-cycle shift.
virtual void vtkPerlinNoise::GetPhase | ( | double | data[3] | ) | [virtual] |
Set/get the phase of the noise function. This parameter can be used to shift the noise function within space (perhaps to avoid a beat with a noise pattern at another scale). Phase tends to repeat about every unit, so a phase of 0.5 is a half-cycle shift.
virtual void vtkPerlinNoise::SetAmplitude | ( | double | ) | [virtual] |
Set/get the amplitude of the noise function. Amplitude can be negative. The noise function varies randomly between -|Amplitude| and |Amplitude|. Therefore the range of values is 2*|Amplitude| large. The initial amplitude is 1.
virtual double vtkPerlinNoise::GetAmplitude | ( | ) | [virtual] |
Set/get the amplitude of the noise function. Amplitude can be negative. The noise function varies randomly between -|Amplitude| and |Amplitude|. Therefore the range of values is 2*|Amplitude| large. The initial amplitude is 1.
double vtkPerlinNoise::Frequency[3] [protected] |
Definition at line 92 of file vtkPerlinNoise.h.
double vtkPerlinNoise::Phase[3] [protected] |
Definition at line 93 of file vtkPerlinNoise.h.
double vtkPerlinNoise::Amplitude [protected] |
Definition at line 94 of file vtkPerlinNoise.h.