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.filter, heightData, heightScale, NORMALIZE_RANGE, size
Constructor and Description |
---|
FluidSimHeightMap(int size,
int iterations)
Constructor sets the attributes of the hill system and generates the
height map.
|
FluidSimHeightMap(int size,
int iterations,
float minInitialHeight,
float maxInitialHeight,
float viscosity,
float waveSpeed,
float timestep,
float nodeDistance,
long seed)
Constructor sets the attributes of the hill system and generates the
height map.
|
Modifier and Type | Method and Description |
---|---|
boolean |
load()
Generates a heightmap using fluid simulation and the attributes set by
the constructor or the setters.
|
void |
setIterations(int iterations)
Sets the number of times the fluid simulation should be iterated over
the heightmap.
|
void |
setMaxInitialHeight(float maxInitialHeight)
Sets the maximum initial height of the terrain.
|
void |
setMinInitialHeight(float minInitialHeight)
Sets the minimum initial height of the terrain.
|
void |
setNodeDistance(float nodeDistance)
Sets the distance between each node of the heightmap.
|
void |
setTimeStep(float timeStep)
Sets the time-speed between each iteration of the fluid
simulation algorithm.
|
void |
setViscosity(float viscosity)
Sets the viscosity of the simulated fluid.
|
void |
setWaveSpeed(float waveSpeed)
Sets the speed at which the waves travel.
|
erodeTerrain, findMinMaxHeights, flatten, getHeightMap, getInterpolatedHeight, getScaledHeightAtPoint, getScaledHeightMap, getSize, getTrueHeightAtPoint, normalizeTerrain, save, setHeightAtPoint, setHeightScale, setMagnificationFilter, setSize, smooth, smooth, unloadHeightMap
public FluidSimHeightMap(int size, int iterations, float minInitialHeight, float maxInitialHeight, float viscosity, float waveSpeed, float timestep, float nodeDistance, long seed) throws java.lang.Exception
size
- size the size of the terrain to be generatediterations
- the number of iterations to dominInitialHeight
- the minimum initial height of a terrain valuemaxInitialHeight
- the maximum initial height of a terrain valueviscosity
- the viscosity of the fluidwaveSpeed
- the speed at which the waves traveltimestep
- the constant time-step between each iterationnodeDistance
- the distance between each node of the heightmapseed
- the seed to generate the same heightmap againjava.lang.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)public FluidSimHeightMap(int size, int iterations) throws java.lang.Exception
size
- size the size of the terrain to be generatediterations
- the number of iterations to dojava.lang.Exception
- if size of the terrain is not greater than zero, or number of
iterations is not greater than zeropublic boolean load()
public void setIterations(int iterations) throws java.lang.Exception
iterations
- the number of iterations to dojava.lang.Exception
- if iterations is not greater than zeropublic void setMaxInitialHeight(float maxInitialHeight)
maxInitialHeight
- the maximum initial heightsetMinInitialHeight(float)
public void setMinInitialHeight(float minInitialHeight)
minInitialHeight
- the minimum initial heightsetMaxInitialHeight(float)
public void setNodeDistance(float nodeDistance)
nodeDistance
- the distance between each nodepublic void setTimeStep(float timeStep)
timeStep
- the time-step between each iterationpublic void setViscosity(float viscosity)
viscosity
- the viscosity of the fluidpublic void setWaveSpeed(float waveSpeed)
waveSpeed
- the speed at which the waves travel