Class Simplex


  • public class Simplex
    extends Module
    Generates summed octave Simplex-style noise.

    The base Simplex uses a different formula but produces a similar appearance to classic Simplex.

    Default lattice orientation is LatticeOrientation.XZ_BEFORE_Y. See LatticeOrientation for recommended usage.

    Source Modules
    This module does not require any source modules.
    • Field Detail

      • DEFAULT_SIMPLEX_FREQUENCY

        public static final double DEFAULT_SIMPLEX_FREQUENCY
        Default frequency for the Simplex noise module.
        See Also:
        Constant Field Values
      • DEFAULT_SIMPLEX_LACUNARITY

        public static final double DEFAULT_SIMPLEX_LACUNARITY
        Default lacunarity for the Simplex noise module.
        See Also:
        Constant Field Values
      • DEFAULT_SIMPLEX_OCTAVE_COUNT

        public static final int DEFAULT_SIMPLEX_OCTAVE_COUNT
        Default number of octaves for the Simplex noise module.
        See Also:
        Constant Field Values
      • DEFAULT_SIMPLEX_PERSISTENCE

        public static final double DEFAULT_SIMPLEX_PERSISTENCE
        Default persistence value for the Simplex noise module.
        See Also:
        Constant Field Values
      • DEFAULT_SIMPLEX_ORIENTATION

        public static final LatticeOrientation DEFAULT_SIMPLEX_ORIENTATION
        Default lattice orientation for the Simplex noise module.
      • DEFAULT_SIMPLEX_QUALITY

        public static final NoiseQualitySimplex DEFAULT_SIMPLEX_QUALITY
        Default noise quality for the Simplex noise module.
      • DEFAULT_SIMPLEX_SEED

        public static final int DEFAULT_SIMPLEX_SEED
        Default noise seed for the Simplex noise module.
        See Also:
        Constant Field Values
      • SIMPLEX_MAX_OCTAVE

        public static final int SIMPLEX_MAX_OCTAVE
        Maximum number of octaves for the Simplex noise module.
        See Also:
        Constant Field Values
    • Constructor Detail

      • Simplex

        public Simplex()
    • Method Detail

      • getFrequency

        public double getFrequency()
        Get the frequency of the first octave.
        Returns:
        the frequency of the first octave
        See Also:
        DEFAULT_SIMPLEX_FREQUENCY
      • setFrequency

        public void setFrequency​(double frequency)
        Set the frequency of the first octave.
        Parameters:
        frequency - the frequency of the first octave
      • getLacunarity

        public double getLacunarity()
        Get the lacunarity of the Simplex noise.

        The lacunarity is the frequency multiplier between successive octaves.

        Returns:
        the lacunarity of the Simplex noise
        See Also:
        DEFAULT_SIMPLEX_LACUNARITY
      • setLacunarity

        public void setLacunarity​(double lacunarity)
        Sets the lacunarity of the Simplex noise.

        The lacunarity is the frequency multiplier between successive octaves.

        For best results, set the lacunarity to a number between 1.5 and 3.5.

        Parameters:
        lacunarity - the lacunarity of the Simplex noise
      • setLatticeOrientation

        public void setLatticeOrientation​(LatticeOrientation latticeOrientation)
        Set the lattice orientation for the Simplex noise.
        Parameters:
        latticeOrientation - the lattice orientation
      • setNoiseQuality

        public void setNoiseQuality​(NoiseQualitySimplex noiseQuality)
        Set the quality of the Simplex noise.

        See NoiseQualitySimplex for definitions of the various coherent-noise qualities.

        Parameters:
        noiseQuality - the quality of the Simplex noise
      • getOctaveCount

        public int getOctaveCount()
        Get the number of octaves that generate the Simplex noise.

        The number of octaves controls the amount of detail in the Simplex noise.

        Returns:
        the number of octaves that generate the Simplex noise
        See Also:
        DEFAULT_SIMPLEX_OCTAVE_COUNT
      • setOctaveCount

        public void setOctaveCount​(int octaveCount)
        Set the number of octaves that generate the Simplex noise.

        The octave count must be between 1 and SIMPLEX_MAX_OCTAVE, inclusive.

        The number of octaves controls the amount of detail in the Simplex noise.

        The larger the number of octaves, the more time required to calculate the Simplex-noise value.

        Parameters:
        octaveCount - the number of octaves that generate the Simplex noise
        Throws:
        IllegalArgumentException - if the octave count is out of bounds
      • getPersistence

        public double getPersistence()
        Get the persistence value of the Simplex noise.

        The persistence value controls the roughness of the Simplex noise.

        Returns:
        the persistence value
        See Also:
        DEFAULT_SIMPLEX_PERSISTENCE
      • setPersistence

        public void setPersistence​(double persistence)
        Sets the persistence value of the Simplex noise.

        The persistence value controls the roughness of the Simplex noise.

        For best results, set the persistence to a number between 0.0 and 1.0.

        Parameters:
        persistence - the persistence value of the Simplex noise
      • getSeed

        public int getSeed()
        Get the seed value used by the Simplex noise function.
        Returns:
        the seed value
        See Also:
        DEFAULT_SIMPLEX_SEED
      • setSeed

        public void setSeed​(int seed)
        Set the seed value used by the Simplex-noise function.
        Parameters:
        seed - the seed value
      • getMaxValue

        public double getMaxValue()
        Returns the maximum value the simplex module can output in its current configuration.
        Returns:
        The maximum possible value for getValue(double, double, double) to return
      • getValue

        public double getValue​(double x,
                               double y,
                               double z)
        Description copied from class: Module
        Generates an output value given the coordinates of the specified input value.

        All source modules required by this module must have been connected with the Module.setSourceModule(int, Module) method. If these source modules are not connected, this method will throw a NoModuleException.

        To determine the number of source modules required by this noise module, call the Module.getSourceModuleCount() method.

        Specified by:
        getValue in class Module
        Parameters:
        x - the x coordinate of the input value
        y - the y coordinate of the input value
        z - the z coordinate of the input value
        Returns:
        the output value