Package com.jme3.terrain
Class GeoMap
java.lang.Object
com.jme3.terrain.GeoMap
- All Implemented Interfaces:
Savable
- Direct Known Subclasses:
LODGeomap
Constructs heightfields to be used in Terrain.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptioncreateMesh
(Vector3f scale, Vector2f tcScale, boolean center) int
Returns the height of this Geomapfloat[]
int
float
getValue
(int i) Returns the height value at the given index.float
getValue
(int x, int y) Returns the height value for a given point.int
getWidth()
Returns the width of this Geomapboolean
isLoaded()
Returns true if the Geomap data is loaded in memory If false, then the data is unavailable- must be loaded with load() before the methods getHeight/getNormal can be usedvoid
read
(JmeImporter im) void
write
(JmeExporter ex) writeIndexArray
(IntBuffer store) writeNormalArray
(FloatBuffer store, Vector3f scale) Creates a normal array from the normal data in this GeomapwriteTexCoordArray
(FloatBuffer store, Vector2f offset, Vector2f scale) writeVertexArray
(FloatBuffer store, Vector3f scale, boolean center) Creates a vertex array from the height data in this Geomap The scale argument specifies the scale to use for the vertex buffer.
-
Field Details
-
hdata
protected float[] hdata -
width
protected int width -
height
protected int height -
maxval
protected int maxval
-
-
Constructor Details
-
GeoMap
public GeoMap() -
GeoMap
public GeoMap(float[] heightData, int width, int height, int maxval)
-
-
Method Details
-
getHeightArray
public float[] getHeightArray() -
getMaximumValue
public int getMaximumValue()- Returns:
- The maximum possible value that
getValue()
can return. Mostly depends on the source data format (byte, short, int, etcetera).
-
getValue
public float getValue(int x, int y) Returns the height value for a given point. MUST return the same value as getHeight(y*getWidth()+x)- Parameters:
x
- the X coordinatey
- the Y coordinate- Returns:
- an arbitrary height looked up from the heightmap
- Throws:
NullPointerException
- If isLoaded() is false
-
getValue
public float getValue(int i) Returns the height value at the given index. zero index is top left of map, getWidth()*getHeight() index is lower right- Parameters:
i
- The index- Returns:
- an arbitrary height looked up from the heightmap
- Throws:
NullPointerException
- If isLoaded() is false
-
getWidth
public int getWidth()Returns the width of this Geomap- Returns:
- the width of this Geomap
-
getHeight
public int getHeight()Returns the height of this Geomap- Returns:
- the height of this Geomap
-
isLoaded
public boolean isLoaded()Returns true if the Geomap data is loaded in memory If false, then the data is unavailable- must be loaded with load() before the methods getHeight/getNormal can be used- Returns:
- whether the geomap data is loaded in system memory
-
writeNormalArray
Creates a normal array from the normal data in this Geomap- Parameters:
store
- A preallocated FloatBuffer where to store the data (optional), size must be >= getWidth()*getHeight()*3- Returns:
- store, or a new FloatBuffer if store is null
- Throws:
NullPointerException
- If isLoaded() or hasNormalmap() is false
-
writeVertexArray
Creates a vertex array from the height data in this Geomap The scale argument specifies the scale to use for the vertex buffer. For example, if scale is 10,1,10, then the greatest X value is getWidth()*10- Parameters:
store
- A preallocated FloatBuffer where to store the data (optional), size must be >= getWidth()*getHeight()*3scale
- Created vertexes are scaled by this vector- Returns:
- store, or a new FloatBuffer if store is null
- Throws:
NullPointerException
- If isLoaded() is false
-
getUV
-
getUV
-
writeTexCoordArray
-
writeIndexArray
-
createMesh
-
write
- Specified by:
write
in interfaceSavable
- Throws:
IOException
-
read
- Specified by:
read
in interfaceSavable
- Throws:
IOException
-