Panda3D
Public Member Functions | List of all members
PerlinNoise3 Class Reference

This class provides an implementation of Perlin noise for 3 variables. More...

#include "perlinNoise3.h"

Inheritance diagram for PerlinNoise3:
PerlinNoise

Public Member Functions

 PerlinNoise3 ()
 Randomizes the tables to make a unique noise function. More...
 
 PerlinNoise3 (double sx, double sy, double sz, int table_size=256, unsigned long seed=0)
 Randomizes the tables to make a unique noise function. More...
 
 PerlinNoise3 (const PerlinNoise3 &copy)
 Makes an exact copy of the existing PerlinNoise object, including its random seed. More...
 
double noise (double x, double y, double z) const
 Returns the noise function of the three inputs. More...
 
float noise (const LVecBase3f &value) const
 Returns the noise function of the three inputs. More...
 
double noise (const LVecBase3d &value) const
 Returns the noise function of the three inputs. More...
 
double operator() (double x, double y, double z) const
 Returns the noise function of the three inputs. More...
 
float operator() (const LVecBase3f &value) const
 Returns the noise function of the three inputs. More...
 
double operator() (const LVecBase3d &value) const
 Returns the noise function of the three inputs. More...
 
void operator= (const PerlinNoise3 &copy)
 Makes an exact copy of the existing PerlinNoise object, including its random seed. More...
 
void set_scale (double scale)
 Changes the scale (frequency) of the noise. More...
 
void set_scale (double sx, double sy, double sz)
 Changes the scale (frequency) of the noise. More...
 
void set_scale (const LVecBase3f &scale)
 Changes the scale (frequency) of the noise. More...
 
void set_scale (const LVecBase3d &scale)
 Changes the scale (frequency) of the noise. More...
 
- Public Member Functions inherited from PerlinNoise
unsigned long get_seed ()
 Returns a unique seed value based on the seed value passed to this PerlinNoise object (and on its current state). More...
 

Detailed Description

This class provides an implementation of Perlin noise for 3 variables.

This code is loosely based on the reference implementation at http://mrl.nyu.edu/~perlin/noise/ .

Definition at line 28 of file perlinNoise3.h.

Constructor & Destructor Documentation

◆ PerlinNoise3() [1/3]

PerlinNoise3::PerlinNoise3 ( )
inline

Randomizes the tables to make a unique noise function.

Uses a default scale (noise frequency), table size, and seed.

Definition at line 24 of file perlinNoise3.I.

Referenced by PerlinNoise3().

◆ PerlinNoise3() [2/3]

PerlinNoise3::PerlinNoise3 ( double  sx,
double  sy,
double  sz,
int  table_size = 256,
unsigned long  seed = 0 
)
inline

Randomizes the tables to make a unique noise function.

If seed is nonzero, it is used to define the tables; if it is zero a random seed is generated.

Definition at line 41 of file perlinNoise3.I.

References PerlinNoise3(), and set_scale().

◆ PerlinNoise3() [3/3]

PerlinNoise3::PerlinNoise3 ( const PerlinNoise3 copy)
inline

Makes an exact copy of the existing PerlinNoise object, including its random seed.

Definition at line 56 of file perlinNoise3.I.

References operator=().

Member Function Documentation

◆ noise() [1/3]

double PerlinNoise3::noise ( double  x,
double  y,
double  z 
) const
inline

Returns the noise function of the three inputs.

Definition at line 122 of file perlinNoise3.I.

Referenced by noise(), operator()(), and set_scale().

◆ noise() [2/3]

float PerlinNoise3::noise ( const LVecBase3f value) const
inline

Returns the noise function of the three inputs.

Definition at line 132 of file perlinNoise3.I.

References noise(), and operator()().

◆ noise() [3/3]

double PerlinNoise3::noise ( const LVecBase3d value) const

Returns the noise function of the three inputs.

Definition at line 24 of file perlinNoise3.cxx.

References LMatrix4d::set_row(), and LMatrix4d::xform_point().

◆ operator()() [1/3]

double PerlinNoise3::operator() ( double  x,
double  y,
double  z 
) const
inline

Returns the noise function of the three inputs.

Definition at line 142 of file perlinNoise3.I.

References noise().

Referenced by noise(), and operator()().

◆ operator()() [2/3]

float PerlinNoise3::operator() ( const LVecBase3f value) const
inline

Returns the noise function of the three inputs.

Definition at line 152 of file perlinNoise3.I.

References noise(), and operator()().

◆ operator()() [3/3]

double PerlinNoise3::operator() ( const LVecBase3d value) const
inline

Returns the noise function of the three inputs.

Definition at line 162 of file perlinNoise3.I.

References noise().

◆ operator=()

void PerlinNoise3::operator= ( const PerlinNoise3 copy)
inline

Makes an exact copy of the existing PerlinNoise object, including its random seed.

Definition at line 70 of file perlinNoise3.I.

References set_scale().

Referenced by PerlinNoise3().

◆ set_scale() [1/4]

void PerlinNoise3::set_scale ( double  scale)
inline

Changes the scale (frequency) of the noise.

Definition at line 82 of file perlinNoise3.I.

Referenced by operator=(), PerlinNoise3(), and set_scale().

◆ set_scale() [2/4]

void PerlinNoise3::set_scale ( double  sx,
double  sy,
double  sz 
)
inline

Changes the scale (frequency) of the noise.

Definition at line 92 of file perlinNoise3.I.

References set_scale().

◆ set_scale() [3/4]

void PerlinNoise3::set_scale ( const LVecBase3f scale)
inline

Changes the scale (frequency) of the noise.

Definition at line 102 of file perlinNoise3.I.

References set_scale().

◆ set_scale() [4/4]

void PerlinNoise3::set_scale ( const LVecBase3d scale)
inline

Changes the scale (frequency) of the noise.

Definition at line 112 of file perlinNoise3.I.

References noise(), and LMatrix4d::scale_mat().


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