VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
vtkPerlinNoise Class Reference

an implicit function that implements Perlin noise More...

#include <vtkPerlinNoise.h>

Inheritance diagram for vtkPerlinNoise:
Inheritance graph
[legend]
Collaboration diagram for vtkPerlinNoise:
Collaboration graph
[legend]

List of all members.

Public Types

typedef vtkImplicitFunction Superclass

Public Member Functions

virtual int IsA (const char *type)
vtkPerlinNoiseNewInstance () const
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 doubleGetFrequency ()
virtual void GetFrequency (double data[3])
virtual void SetPhase (double, double, double)
virtual void SetPhase (double[3])
virtual doubleGetPhase ()
virtual void GetPhase (double data[3])
virtual void SetAmplitude (double)
virtual double GetAmplitude ()

Static Public Member Functions

static int IsTypeOf (const char *type)
static vtkPerlinNoiseSafeDownCast (vtkObjectBase *o)
static vtkPerlinNoiseNew ()

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 vtkPerlinNoise ()
 ~vtkPerlinNoise ()

Protected Attributes

double Frequency [3]
double Phase [3]
double Amplitude

Detailed Description

an implicit function that implements Perlin noise

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.

See also:
vtkImplicitFunction
Examples:
vtkPerlinNoise (Examples)
Tests:
vtkPerlinNoise (Tests)

Definition at line 43 of file vtkPerlinNoise.h.


Member Typedef Documentation

Reimplemented from vtkImplicitFunction.

Definition at line 46 of file vtkPerlinNoise.h.


Constructor & Destructor Documentation

vtkPerlinNoise::~vtkPerlinNoise ( ) [inline, protected]

Definition at line 91 of file vtkPerlinNoise.h.


Member Function Documentation

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.

Reimplemented from vtkImplicitFunction.

virtual vtkObjectBase* vtkPerlinNoise::NewInstanceInternal ( ) const [protected, virtual]

Reimplemented from vtkImplicitFunction.

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.

Evaluate PerlinNoise function.

Implements vtkImplicitFunction.

Evaluate PerlinNoise function.

Reimplemented from vtkImplicitFunction.

Definition at line 55 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.


Member Data Documentation

Definition at line 93 of file vtkPerlinNoise.h.

double vtkPerlinNoise::Phase[3] [protected]

Definition at line 94 of file vtkPerlinNoise.h.

Definition at line 95 of file vtkPerlinNoise.h.


The documentation for this class was generated from the following file: