|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.jme3.terrain.GeoMap
com.jme3.terrain.geomipmap.LODGeomap
public class LODGeomap
Produces the mesh for the TerrainPatch. This LOD algorithm generates a single triangle strip by first building the center of the mesh, minus one outer edge around it. Then it builds the edges in counter-clockwise order, starting at the bottom right and working up, then left across the top, then down across the left, then right across the bottom. It needs to know what its neighbour's LOD's are so it can stitch the edges. It creates degenerate polygons in order to keep the winding order of the polygons and to move the strip to a new position while still maintaining the continuity of the overall mesh. These degenerates are removed quickly by the video card.
Nested Class Summary | |
---|---|
class |
LODGeomap.VerboseIntBuffer
Keeps a count of the number of indexes, good for debugging |
Field Summary |
---|
Fields inherited from class com.jme3.terrain.GeoMap |
---|
hdata, height, maxval, width |
Constructor Summary | |
---|---|
LODGeomap()
|
|
LODGeomap(int size,
float[] heightMap)
|
|
LODGeomap(int size,
java.nio.FloatBuffer heightMap)
Deprecated. |
Method Summary | |
---|---|
static Vector3f |
calculateTangent(Vector3f[] v,
Vector2f[] t,
Vector3f tangent,
Vector3f binormal)
|
Mesh |
createMesh(Vector3f scale,
Vector2f tcScale,
Vector2f tcOffset,
float offsetAmount,
int totalSize,
boolean center)
|
Mesh |
createMesh(Vector3f scale,
Vector2f tcScale,
Vector2f tcOffset,
float offsetAmount,
int totalSize,
boolean center,
int lod,
boolean rightLod,
boolean topLod,
boolean leftLod,
boolean bottomLod)
|
protected int |
findClosestHeightIndex(int x,
int z)
|
protected Triangle[] |
getGridTrianglesAtPoint(float x,
float z)
Get the two triangles that make up the grid section at the specified point. |
protected Triangle[] |
getGridTrianglesAtPoint(float x,
float z,
Vector3f scale,
Vector3f translation)
Get the two triangles that make up the grid section at the specified point, translated to world coordinates. |
protected float |
getHeight(int x,
int z,
float xm,
float zm)
Get the two triangles that make up the grid section at the specified point. |
protected Triangle |
getTriangleAtPoint(float x,
float z)
Get the triangle that the point is on. |
protected Triangle |
getTriangleAtPoint(float x,
float z,
Vector3f scale,
Vector3f translation)
Get a representation of the underlying triangle at the given point, translated to world coordinates. |
Vector2f |
getUV(int x,
int y,
Vector2f store,
Vector2f offset,
float offsetAmount,
int totalSize)
|
void |
read(JmeImporter im)
|
void |
write(JmeExporter ex)
|
java.nio.IntBuffer |
writeIndexArrayLodDiff(java.nio.IntBuffer store,
int lod,
boolean rightLod,
boolean topLod,
boolean leftLod,
boolean bottomLod)
Create the LOD index array that will seam its edges with its neighbour's LOD. |
java.nio.IntBuffer |
writeIndexArrayLodVariable(java.nio.IntBuffer store,
int lod,
int rightLod,
int topLod,
int leftLod,
int bottomLod)
|
java.nio.FloatBuffer |
writeNormalArray(java.nio.FloatBuffer store,
Vector3f scale)
Creates a normal array from the normal data in this Geomap |
java.nio.FloatBuffer[] |
writeTangentArray(java.nio.FloatBuffer normalBuffer,
java.nio.FloatBuffer tangentStore,
java.nio.FloatBuffer binormalStore,
java.nio.FloatBuffer textureBuffer,
Vector3f scale)
|
java.nio.FloatBuffer |
writeTexCoordArray(java.nio.FloatBuffer store,
Vector2f offset,
Vector2f scale,
float offsetAmount,
int totalSize)
|
Methods inherited from class com.jme3.terrain.GeoMap |
---|
createMesh, getHeight, getHeightArray, getHeightData, getMaximumValue, getUV, getUV, getValue, getValue, getWidth, isLoaded, writeIndexArray, writeTexCoordArray, writeVertexArray |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public LODGeomap()
@Deprecated public LODGeomap(int size, java.nio.FloatBuffer heightMap)
public LODGeomap(int size, float[] heightMap)
Method Detail |
---|
public Mesh createMesh(Vector3f scale, Vector2f tcScale, Vector2f tcOffset, float offsetAmount, int totalSize, boolean center)
public Mesh createMesh(Vector3f scale, Vector2f tcScale, Vector2f tcOffset, float offsetAmount, int totalSize, boolean center, int lod, boolean rightLod, boolean topLod, boolean leftLod, boolean bottomLod)
public java.nio.FloatBuffer writeTexCoordArray(java.nio.FloatBuffer store, Vector2f offset, Vector2f scale, float offsetAmount, int totalSize)
public Vector2f getUV(int x, int y, Vector2f store, Vector2f offset, float offsetAmount, int totalSize)
public java.nio.IntBuffer writeIndexArrayLodDiff(java.nio.IntBuffer store, int lod, boolean rightLod, boolean topLod, boolean leftLod, boolean bottomLod)
store
- to store the index bufferlod
- level of detail of the meshrightLod
- LOD of the right neighbourtopLod
- LOD of the top neighbourleftLod
- LOD of the left neighbourbottomLod
- LOD of the bottom neighbour
public java.nio.IntBuffer writeIndexArrayLodVariable(java.nio.IntBuffer store, int lod, int rightLod, int topLod, int leftLod, int bottomLod)
public java.nio.FloatBuffer[] writeTangentArray(java.nio.FloatBuffer normalBuffer, java.nio.FloatBuffer tangentStore, java.nio.FloatBuffer binormalStore, java.nio.FloatBuffer textureBuffer, Vector3f scale)
public static Vector3f calculateTangent(Vector3f[] v, Vector2f[] t, Vector3f tangent, Vector3f binormal)
v
- Takes 3 vertices: root, right, bottomt
- Takes 3 tex coords: root, right, bottomtangent
- that will store the result
public java.nio.FloatBuffer writeNormalArray(java.nio.FloatBuffer store, Vector3f scale)
GeoMap
writeNormalArray
in class GeoMap
store
- A preallocated FloatBuffer where to store the data (optional), size must be >= getWidth()*getHeight()*3protected float getHeight(int x, int z, float xm, float zm)
protected Triangle getTriangleAtPoint(float x, float z, Vector3f scale, Vector3f translation)
x
- local x coordinatez
- local z coordinate
protected Triangle[] getGridTrianglesAtPoint(float x, float z, Vector3f scale, Vector3f translation)
x
- local x coordinatez
- local z coordinatescale
- translation
-
protected Triangle[] getGridTrianglesAtPoint(float x, float z)
x
- local x coordinatez
- local z coordinatescale
- translation
-
protected Triangle getTriangleAtPoint(float x, float z)
x
- coordinate in local space to the geomapz
- coordinate in local space to the geomap
protected int findClosestHeightIndex(int x, int z)
public void write(JmeExporter ex) throws java.io.IOException
write
in interface Savable
write
in class GeoMap
java.io.IOException
public void read(JmeImporter im) throws java.io.IOException
read
in interface Savable
read
in class GeoMap
java.io.IOException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |