Class HillHeightMap

java.lang.Object
com.jme3.terrain.heightmap.AbstractHeightMap
com.jme3.terrain.heightmap.HillHeightMap
All Implemented Interfaces:
HeightMap

public class HillHeightMap extends AbstractHeightMap
HillHeightMap generates a height map base on the Hill Algorithm. Terrain is generated by growing hills of random size and height at random points in the heightmap. The terrain is then normalized and valleys can be flattened.
See Also:
  • Constructor Details

    • HillHeightMap

      public HillHeightMap(int size, int iterations, float minRadius, float maxRadius, long seed) throws Exception
      Constructor sets the attributes of the hill system and generates the height map.
      Parameters:
      size - size the size of the terrain to be generated
      iterations - the number of hills to grow
      minRadius - the minimum radius of a hill
      maxRadius - the maximum radius of a hill
      seed - the seed to generate the same heightmap again
      Throws:
      Exception - if size of the terrain is not greater than zero, or the number of iterations is not greater than zero
    • HillHeightMap

      public HillHeightMap(int size, int iterations, float minRadius, float maxRadius) throws Exception
      Constructor sets the attributes of the hill system and generates the height map by using a random seed.
      Parameters:
      size - size the size of the terrain to be generated
      iterations - the number of hills to grow
      minRadius - the minimum radius of a hill
      maxRadius - the maximum radius of a hill
      Throws:
      Exception - if size of the terrain is not greater than zero, or number of iterations is not greater than zero
  • Method Details

    • load

      public boolean load()
      Generates a heightmap using the Hill Algorithm and the attributes set by the constructor or the setters.
      Returns:
      true if the load was successful, false otherwise.
    • addHill

      protected void addHill(float[][] tempBuffer, Random random)
      Generates a new hill of random size and height at a random position in the heightmap. This is the actual Hill algorithm. The Random object is used to guarantee the same heightmap for the same seed and attributes.
      Parameters:
      tempBuffer - the temporary height map buffer
      random - the random number generator
    • setIterations

      public void setIterations(int iterations) throws Exception
      Sets the number of hills to grow. More hills usually mean a nicer heightmap.
      Parameters:
      iterations - the number of hills to grow
      Throws:
      Exception - if iterations is not greater than zero
    • setMaxRadius

      public void setMaxRadius(float maxRadius) throws Exception
      Sets the minimum radius of a hill.
      Parameters:
      maxRadius - the maximum radius of a hill
      Throws:
      Exception - if the maximum radius is not greater than zero or not greater than the minimum radius
    • setMinRadius

      public void setMinRadius(float minRadius) throws Exception
      Sets the maximum radius of a hill.
      Parameters:
      minRadius - the minimum radius of a hill
      Throws:
      Exception - if the minimum radius is not greater than zero or not lower than the maximum radius