Package org.bukkit.util.noise

# Class PerlinNoiseGenerator

java.lang.Object
org.bukkit.util.noise.NoiseGenerator
org.bukkit.util.noise.PerlinNoiseGenerator

Direct Known Subclasses:
  `SimplexNoiseGenerator`

public class PerlinNoiseGenerator extends NoiseGenerator
Generates noise using the "classic" perlin generator

See Also:
  - `"Improved" and faster version with slightly different results`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static final int[][]`
`grad3`

### Fields inherited from class org.bukkit.util.noise.NoiseGenerator

`offsetX, offsetY, offsetZ, perm`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`PerlinNoiseGenerator()`
``
`PerlinNoiseGenerator(long seed)`
Creates a seeded perlin noise generator for the given seed
``
`PerlinNoiseGenerator(@NotNull Random rand)`
Creates a seeded perlin noise generator with the given Random
``
`PerlinNoiseGenerator(@NotNull World world)`
Creates a seeded perlin noise generator for the given world

## Method Summary

Modifier and Type
Method
Description
`static @NotNull PerlinNoiseGenerator`
`getInstance()`
Gets the singleton unseeded instance of this generator
`static double`
`getNoise(double x)`
Computes and returns the 1D unseeded perlin noise for the given coordinates in 1D space
`static double`
`getNoise(double x, double y)`
Computes and returns the 2D unseeded perlin noise for the given coordinates in 2D space
`static double`
`getNoise(double x, double y, double z)`
Computes and returns the 3D unseeded perlin noise for the given coordinates in 3D space
`static double`
`getNoise(double x, double y, double z, int octaves, double frequency, double amplitude)`
Generates noise for the 3D coordinates using the specified number of octaves and parameters
`static double`
`getNoise(double x, double y, int octaves, double frequency, double amplitude)`
Generates noise for the 2D coordinates using the specified number of octaves and parameters
`static double`
`getNoise(double x, int octaves, double frequency, double amplitude)`
Generates noise for the 1D coordinates using the specified number of octaves and parameters
`double`
`noise(double x, double y, double z)`
Computes and returns the 3D noise for the given coordinates in 3D space

### Methods inherited from class org.bukkit.util.noise.NoiseGenerator

`fade, floor, grad, lerp, noise, noise, noise, noise, noise, noise, noise, noise`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### grad3

protected static final int[][] grad3

## Constructor Details

### PerlinNoiseGenerator

protected PerlinNoiseGenerator()

### PerlinNoiseGenerator

public PerlinNoiseGenerator(@NotNull @NotNull World world)
Creates a seeded perlin noise generator for the given world

Parameters:
  `world` - World to construct this generator for

### PerlinNoiseGenerator

public PerlinNoiseGenerator(long seed)
Creates a seeded perlin noise generator for the given seed

Parameters:
  `seed` - Seed to construct this generator for

### PerlinNoiseGenerator

public PerlinNoiseGenerator(@NotNull @NotNull Random rand)
Creates a seeded perlin noise generator with the given Random

Parameters:
  `rand` - Random to construct with

## Method Details

### getNoise

public static double getNoise(double x)
Computes and returns the 1D unseeded perlin noise for the given coordinates in 1D space

Parameters:
  `x` - X coordinate
Returns:
  Noise at given location, from range -1 to 1

### getNoise

public static double getNoise(double x, double y)
Computes and returns the 2D unseeded perlin noise for the given coordinates in 2D space

Parameters:
  `x` - X coordinate
  `y` - Y coordinate
Returns:
  Noise at given location, from range -1 to 1

### getNoise

public static double getNoise(double x, double y, double z)
Computes and returns the 3D unseeded perlin noise for the given coordinates in 3D space

Parameters:
  `x` - X coordinate
  `y` - Y coordinate
  `z` - Z coordinate
Returns:
  Noise at given location, from range -1 to 1

### getInstance

@NotNull public static @NotNull PerlinNoiseGenerator getInstance()
Gets the singleton unseeded instance of this generator

Returns:
  Singleton

### noise

public double noise(double x, double y, double z)
Description copied from class: `NoiseGenerator`
Computes and returns the 3D noise for the given coordinates in 3D space

Specified by:
  `noise` in class `NoiseGenerator`
Parameters:
  `x` - X coordinate
  `y` - Y coordinate
  `z` - Z coordinate
Returns:
  Noise at given location, from range -1 to 1

### getNoise

public static double getNoise(double x, int octaves, double frequency, double amplitude)
Generates noise for the 1D coordinates using the specified number of octaves and parameters

Parameters:
  `x` - X-coordinate
  `octaves` - Number of octaves to use
  `frequency` - How much to alter the frequency by each octave
  `amplitude` - How much to alter the amplitude by each octave
Returns:
  Resulting noise

### getNoise

public static double getNoise(double x, double y, int octaves, double frequency, double amplitude)
Generates noise for the 2D coordinates using the specified number of octaves and parameters

Parameters:
  `x` - X-coordinate
  `y` - Y-coordinate
  `octaves` - Number of octaves to use
  `frequency` - How much to alter the frequency by each octave
  `amplitude` - How much to alter the amplitude by each octave
Returns:
  Resulting noise

### getNoise

public static double getNoise(double x, double y, double z, int octaves, double frequency, double amplitude)
Generates noise for the 3D coordinates using the specified number of octaves and parameters

Parameters:
  `x` - X-coordinate
  `y` - Y-coordinate
  `z` - Z-coordinate
  `octaves` - Number of octaves to use
  `frequency` - How much to alter the frequency by each octave
  `amplitude` - How much to alter the amplitude by each octave
Returns:
  Resulting noise