public class CombinerHeightMap extends AbstractHeightMap
CombinerHeightMap
generates a new height map based on
two provided height maps. These had maps can either be added together
or subtracted from each other. Each heightmap has a weight to
determine how much one will affect the other. By default it is set to
0.5, 0.5 and meaning the two heightmaps are averaged evenly. This
value can be adjusted at will, as long as the two factors are equal
to 1.0.Modifier and Type | Field and Description |
---|---|
static int |
ADDITION
Constant mode to denote adding the two heightmaps.
|
static int |
SUBTRACTION
Constant mode to denote subtracting the two heightmaps.
|
filter, heightData, heightScale, NORMALIZE_RANGE, size
Constructor and Description |
---|
CombinerHeightMap(AbstractHeightMap map1,
AbstractHeightMap map2,
int mode)
Constructor combines two given heightmaps by the specified mode.
|
CombinerHeightMap(AbstractHeightMap map1,
float factor1,
AbstractHeightMap map2,
float factor2,
int mode)
Constructor combines two given heightmaps by the specified mode.
|
Modifier and Type | Method and Description |
---|---|
boolean |
load()
load builds a new heightmap based on the combination of
two other heightmaps. |
void |
setFactors(float factor1,
float factor2)
setFactors sets the distribution of heightmaps. |
void |
setHeightMaps(AbstractHeightMap map1,
AbstractHeightMap map2)
setHeightMaps sets the height maps to combine. |
void |
setMode(int mode)
setMode sets the mode of the combiner. |
erodeTerrain, findMinMaxHeights, flatten, getHeightMap, getInterpolatedHeight, getScaledHeightAtPoint, getScaledHeightMap, getSize, getTrueHeightAtPoint, normalizeTerrain, save, setHeightAtPoint, setHeightScale, setMagnificationFilter, setSize, smooth, smooth, unloadHeightMap
public static final int ADDITION
public static final int SUBTRACTION
public CombinerHeightMap(AbstractHeightMap map1, AbstractHeightMap map2, int mode) throws java.lang.Exception
map1
- the first heightmap to combine.map2
- the second heightmap to combine.mode
- denotes whether to add or subtract the heightmaps, may
be either ADDITION or SUBTRACTION.java.lang.Exception
- if either map is null, their size
do not match or the mode is invalid.public CombinerHeightMap(AbstractHeightMap map1, float factor1, AbstractHeightMap map2, float factor2, int mode) throws java.lang.Exception
map1
- the first heightmap to combine.factor1
- the factor for map1.map2
- the second heightmap to combine.factor2
- the factor for map2.mode
- denotes whether to add or subtract the heightmaps, may
be either ADDITION or SUBTRACTION.java.lang.Exception
- if either map is null, their size
do not match, the mode is invalid, or the factors do not add
to 1.0.public void setFactors(float factor1, float factor2) throws java.lang.Exception
setFactors
sets the distribution of heightmaps.
For example, if factor1 is 0.6 and factor2 is 0.4, then 60% of
map1 will be used with 40% of map2. The two factors must add up
to 1.0.factor1
- the factor for map1.factor2
- the factor for map2.java.lang.Exception
- if the factors do not add to 1.0.public void setHeightMaps(AbstractHeightMap map1, AbstractHeightMap map2) throws java.lang.Exception
setHeightMaps
sets the height maps to combine.
The size of the height maps must be the same.map1
- the first height map.map2
- the second height map.java.lang.Exception
- if the either heightmap is null, or their
sizes do not match.public void setMode(int mode) throws java.lang.Exception
setMode
sets the mode of the combiner. This may either
be ADDITION or SUBTRACTION.mode
- the mode of the combiner.java.lang.Exception
- if mode is not ADDITION or SUBTRACTION.public boolean load()
load
builds a new heightmap based on the combination of
two other heightmaps. The conditions of the combiner determine the
final outcome of the heightmap.