Class FluidSimHeightMap

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

public class FluidSimHeightMap extends AbstractHeightMap
FluidSimHeightMap generates a height map based using some sort of fluid simulation. The heightmap is treated as a highly viscous and rubbery fluid enabling to fine tune the generated heightmap using a number of parameters.
See Also:
  • Constructor Details

    • FluidSimHeightMap

      public FluidSimHeightMap(int size, int iterations, float minInitialHeight, float maxInitialHeight, float viscosity, float waveSpeed, float timestep, float nodeDistance, long seed) throws Exception
      Constructor sets the attributes of the hill system and generates the height map. It gets passed a number of tweakable parameters which fine-tune the outcome.
      Parameters:
      size - size the size of the terrain to be generated
      iterations - the number of iterations to do
      minInitialHeight - the minimum initial height of a terrain value
      maxInitialHeight - the maximum initial height of a terrain value
      viscosity - the viscosity of the fluid
      waveSpeed - the speed at which the waves travel
      timestep - the constant time-step between each iteration
      nodeDistance - the distance between each node of the heightmap
      seed - the seed to generate the same heightmap again
      Throws:
      Exception - if size of the terrain is not greater than zero, or number of iterations is not greater that zero, or the minimum initial height is greater than the maximum (or the other way around)
    • FluidSimHeightMap

      public FluidSimHeightMap(int size, int iterations) 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 iterations to do
      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 fluid simulation and the attributes set by the constructor or the setters.
      Returns:
      true if the load was successful, false otherwise.
    • setIterations

      public void setIterations(int iterations) throws Exception
      Sets the number of times the fluid simulation should be iterated over the heightmap. The more iterations, the fewer features (hills, etcetera) the terrain will have, and the smoother it will be.
      Parameters:
      iterations - the number of iterations to perform
      Throws:
      Exception - if iterations is not greater than zero
    • setMaxInitialHeight

      public void setMaxInitialHeight(float maxInitialHeight)
      Sets the maximum initial height of the terrain.
      Parameters:
      maxInitialHeight - the maximum initial height
      See Also:
    • setMinInitialHeight

      public void setMinInitialHeight(float minInitialHeight)
      Sets the minimum initial height of the terrain.
      Parameters:
      minInitialHeight - the minimum initial height
      See Also:
    • setNodeDistance

      public void setNodeDistance(float nodeDistance)
      Sets the distance between each node of the heightmap.
      Parameters:
      nodeDistance - the distance between each node
    • setTimeStep

      public void setTimeStep(float timeStep)
      Sets the time-speed between each iteration of the fluid simulation algorithm.
      Parameters:
      timeStep - the time-step between each iteration
    • setViscosity

      public void setViscosity(float viscosity)
      Sets the viscosity of the simulated fluid.
      Parameters:
      viscosity - the viscosity of the fluid
    • setWaveSpeed

      public void setWaveSpeed(float waveSpeed)
      Sets the speed at which the waves travel.
      Parameters:
      waveSpeed - the speed at which the waves travel