Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

NUM::NoiseGenerator_Perlin< T > Class Template Reference

Ken Perlin's famous noise function. More...

#include <perlin.h>

Inheritance diagram for NUM::NoiseGenerator_Perlin< T >:

Inheritance graph
[legend]
Collaboration diagram for NUM::NoiseGenerator_Perlin< T >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 NoiseGenerator_Perlin (int seed=-1)
 Create Perlin noise generator; use specified seed if >=0.

 ~NoiseGenerator_Perlin ()
noise1 (T) const
 Calculate one dimensional noise; see base class.

noise2 (const T *) const
 Calculate two dimensional noise; see base class.

noise3 (const T *) const
 Calculate three dimensional noise; see base class.


Static Public Attributes

const int B = 0x100
 MUST be a power of 2.

const int NP = 12
const int N = 1<<NP
 N=2^NP.


Private Member Functions

void _init ()
 initialize the frequency tables

 NoiseGenerator_Perlin (const NoiseGenerator_Perlin &)
 Do not use:.

void operator= (const NoiseGenerator_Perlin &)
 Do not use:.


Private Attributes

int p [B+B+2]
g1 [B+B+2]
g2 [B+B+2][2]
g3 [B+B+2][3]

Detailed Description

template<typename T>
class NUM::NoiseGenerator_Perlin< T >

Ken Perlin's famous noise function.

Author:
Klaus Sausen (nicolasius@users.sourceforge.net), Wolfgang Wieser ] wwieser (a) gmx <*> de [
Classified and templatized.
Use dbl or flt as template parameter.

This class is not "C++-safe".

Definition at line 48 of file perlin.h.


Constructor & Destructor Documentation

template<typename T>
NUM::NoiseGenerator_Perlin< T >::NoiseGenerator_Perlin const NoiseGenerator_Perlin< T > &   )  [private]
 

Do not use:.

template<typename T>
NUM::NoiseGenerator_Perlin< T >::NoiseGenerator_Perlin int  seed = -1  )  [inline]
 

Create Perlin noise generator; use specified seed if >=0.

Definition at line 71 of file perlin.h.

References NUM::NoiseGenerator_Perlin< T >::_init().

template<typename T>
NUM::NoiseGenerator_Perlin< T >::~NoiseGenerator_Perlin  )  [inline]
 

Definition at line 74 of file perlin.h.


Member Function Documentation

template<typename T>
void NUM::NoiseGenerator_Perlin< T >::_init  )  [private]
 

initialize the frequency tables

Definition at line 27 of file perlin.cc.

References NUM::NoiseGenerator_Perlin< T >::B, NUM::NoiseGenerator_Perlin< T >::g1, NUM::NoiseGenerator_Perlin< T >::g2, NUM::NoiseGenerator_Perlin< T >::g3, NUM::NoiseGenerator_Perlin< T >::p, and NUM::sqr().

Referenced by NUM::NoiseGenerator_Perlin< T >::NoiseGenerator_Perlin().

template<typename T>
T NUM::NoiseGenerator_Perlin< T >::noise1  )  const [virtual]
 

Calculate one dimensional noise; see base class.

Reimplemented from NUM::NoiseGenerator_Base< T >.

Definition at line 91 of file perlin.cc.

References NUM::NoiseGenerator_Perlin< T >::g1, NUM::lerp(), NUM::NoiseGenerator_Perlin< T >::p, s_curve, and setup.

Referenced by NUM::_NoiseGenerator_PerlinInstantiationDummy().

template<typename T>
T NUM::NoiseGenerator_Perlin< T >::noise2 const T *   )  const [virtual]
 

Calculate two dimensional noise; see base class.

Reimplemented from NUM::NoiseGenerator_Base< T >.

Definition at line 109 of file perlin.cc.

References at2, NUM::NoiseGenerator_Perlin< T >::B, NUM::NoiseGenerator_Perlin< T >::g2, NUM::lerp(), NUM::NoiseGenerator_Perlin< T >::N, NUM::NoiseGenerator_Perlin< T >::p, and s_curve.

Referenced by NUM::_NoiseGenerator_PerlinInstantiationDummy().

template<typename T>
T NUM::NoiseGenerator_Perlin< T >::noise3 const T *   )  const [virtual]
 

Calculate three dimensional noise; see base class.

Reimplemented from NUM::NoiseGenerator_Base< T >.

Definition at line 157 of file perlin.cc.

References at3, NUM::NoiseGenerator_Perlin< T >::B, NUM::NoiseGenerator_Perlin< T >::g3, NUM::lerp(), NUM::NoiseGenerator_Perlin< T >::N, NUM::NoiseGenerator_Perlin< T >::p, and s_curve.

Referenced by NUM::_NoiseGenerator_PerlinInstantiationDummy().

template<typename T>
void NUM::NoiseGenerator_Perlin< T >::operator= const NoiseGenerator_Perlin< T > &   )  [private]
 

Do not use:.


Member Data Documentation

template<typename T>
const int NUM::NoiseGenerator_Perlin< T >::B = 0x100 [static]
 

MUST be a power of 2.

Definition at line 51 of file perlin.h.

Referenced by NUM::NoiseGenerator_Perlin< T >::_init(), NUM::NoiseGenerator_Perlin< T >::noise2(), and NUM::NoiseGenerator_Perlin< T >::noise3().

template<typename T>
T NUM::NoiseGenerator_Perlin< T >::g1[B + B + 2] [private]
 

Definition at line 58 of file perlin.h.

Referenced by NUM::NoiseGenerator_Perlin< T >::_init(), and NUM::NoiseGenerator_Perlin< T >::noise1().

template<typename T>
T NUM::NoiseGenerator_Perlin< T >::g2[B + B + 2][2] [private]
 

Definition at line 59 of file perlin.h.

Referenced by NUM::NoiseGenerator_Perlin< T >::_init(), and NUM::NoiseGenerator_Perlin< T >::noise2().

template<typename T>
T NUM::NoiseGenerator_Perlin< T >::g3[B + B + 2][3] [private]
 

Definition at line 60 of file perlin.h.

Referenced by NUM::NoiseGenerator_Perlin< T >::_init(), and NUM::NoiseGenerator_Perlin< T >::noise3().

template<typename T>
const int NUM::NoiseGenerator_Perlin< T >::N = 1<<NP [static]
 

N=2^NP.

Definition at line 53 of file perlin.h.

Referenced by NUM::NoiseGenerator_Perlin< T >::noise2(), and NUM::NoiseGenerator_Perlin< T >::noise3().

template<typename T>
const int NUM::NoiseGenerator_Perlin< T >::NP = 12 [static]
 

Definition at line 52 of file perlin.h.

template<typename T>
int NUM::NoiseGenerator_Perlin< T >::p[B + B + 2] [private]
 

Definition at line 56 of file perlin.h.

Referenced by NUM::NoiseGenerator_Perlin< T >::_init(), NUM::NoiseGenerator_Perlin< T >::noise1(), NUM::NoiseGenerator_Perlin< T >::noise2(), and NUM::NoiseGenerator_Perlin< T >::noise3().


The documentation for this class was generated from the following files:
Generated on Sat Feb 19 22:35:56 2005 for Ray by doxygen 1.3.5