Class GeoMap

java.lang.Object
com.jme3.terrain.GeoMap
All Implemented Interfaces:
Savable
Direct Known Subclasses:
LODGeomap

public class GeoMap extends Object implements Savable
Constructs heightfields to be used in Terrain.
  • 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 coordinate
      y - 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

      public FloatBuffer writeNormalArray(FloatBuffer store, Vector3f scale)
      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

      public FloatBuffer 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. 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()*3
      scale - Created vertexes are scaled by this vector
      Returns:
      store, or a new FloatBuffer if store is null
      Throws:
      NullPointerException - If isLoaded() is false
    • getUV

      public Vector2f getUV(int x, int y, Vector2f store)
    • getUV

      public Vector2f getUV(int i, Vector2f store)
    • writeTexCoordArray

      public FloatBuffer writeTexCoordArray(FloatBuffer store, Vector2f offset, Vector2f scale)
    • writeIndexArray

      public IntBuffer writeIndexArray(IntBuffer store)
    • createMesh

      public Mesh createMesh(Vector3f scale, Vector2f tcScale, boolean center)
    • write

      public void write(JmeExporter ex) throws IOException
      Specified by:
      write in interface Savable
      Throws:
      IOException
    • read

      public void read(JmeImporter im) throws IOException
      Specified by:
      read in interface Savable
      Throws:
      IOException