public class TerrainLodControl
extends com.jme3.scene.control.AbstractControl
| Modifier and Type | Class and Description |
|---|---|
protected class |
TerrainLodControl.UpdateLOD
Calculates the LOD of all child terrain patches.
|
| Modifier and Type | Field and Description |
|---|---|
protected com.jme3.renderer.Camera |
camera
The camera from render view port.
|
protected com.jme3.util.SafeArrayList<com.jme3.math.Vector3f> |
cameraLocations |
protected com.jme3.util.SafeArrayList<com.jme3.renderer.Camera> |
cameras
The list of cameras for when terrain supports multiple cameras (ie split screen)
|
protected boolean |
forceUpdate |
protected boolean |
hasResetLod |
protected java.util.concurrent.Future<java.util.HashMap<java.lang.String,UpdatedTerrainPatch>> |
indexer |
protected com.jme3.util.SafeArrayList<com.jme3.math.Vector3f> |
lastCameraLocations |
protected java.util.concurrent.atomic.AtomicBoolean |
lodCalcRunning |
protected LodCalculator |
lodCalculator |
protected com.jme3.math.Vector3f |
previousCameraLocation
The previous location of
camera. |
protected Terrain |
terrain |
protected boolean |
useRenderCamera
The flag of using a camera from render viewport instead cameras from
cameras. |
| Constructor and Description |
|---|
TerrainLodControl() |
TerrainLodControl(com.jme3.renderer.Camera camera) |
TerrainLodControl(Terrain terrain) |
TerrainLodControl(Terrain terrain,
com.jme3.renderer.Camera camera) |
TerrainLodControl(Terrain terrain,
java.util.List<com.jme3.renderer.Camera> cameras)
Only uses the first camera right now.
|
| Modifier and Type | Method and Description |
|---|---|
void |
cloneFields(com.jme3.util.clone.Cloner cloner,
java.lang.Object original) |
com.jme3.scene.control.Control |
cloneForSpatial(com.jme3.scene.Spatial spatial) |
protected void |
controlRender(com.jme3.renderer.RenderManager rm,
com.jme3.renderer.ViewPort vp) |
protected void |
controlUpdate(float tpf) |
protected TerrainLodControl.UpdateLOD |
createLodUpdateTask(java.util.List<com.jme3.math.Vector3f> locations,
LodCalculator lodCalculator) |
void |
detachAndCleanUpControl()
Call this when you remove the terrain or this control from the scene.
|
void |
forceUpdate()
Force the LOD to update instantly, does not wait for the camera to move.
|
LodCalculator |
getLodCalculator() |
boolean |
isUseRenderCamera() |
java.lang.Object |
jmeClone() |
protected DistanceLodCalculator |
makeLodCalculator() |
protected void |
prepareTerrain() |
void |
read(com.jme3.export.JmeImporter im) |
void |
setCamera(com.jme3.renderer.Camera camera) |
void |
setCameras(java.util.List<com.jme3.renderer.Camera> cameras) |
void |
setEnabled(boolean enabled) |
void |
setLodCalculator(LodCalculator lodCalculator) |
void |
setSpatial(com.jme3.scene.Spatial spatial) |
void |
setTerrain(Terrain terrain) |
void |
setUseRenderCamera(boolean useRenderCamera) |
protected void |
updateLOD(LodCalculator lodCalculator) |
protected void |
updateLOD(com.jme3.util.SafeArrayList<com.jme3.math.Vector3f> locations,
LodCalculator lodCalculator) |
protected boolean |
updateLodOffCount(LodCalculator lodCalculator) |
void |
write(com.jme3.export.JmeExporter ex) |
protected com.jme3.util.SafeArrayList<com.jme3.renderer.Camera> cameras
protected com.jme3.util.SafeArrayList<com.jme3.math.Vector3f> cameraLocations
protected com.jme3.util.SafeArrayList<com.jme3.math.Vector3f> lastCameraLocations
protected java.util.concurrent.atomic.AtomicBoolean lodCalcRunning
protected com.jme3.math.Vector3f previousCameraLocation
camera.protected com.jme3.renderer.Camera camera
protected Terrain terrain
protected LodCalculator lodCalculator
protected java.util.concurrent.Future<java.util.HashMap<java.lang.String,UpdatedTerrainPatch>> indexer
protected boolean useRenderCamera
cameras.protected boolean forceUpdate
protected boolean hasResetLod
public TerrainLodControl()
public TerrainLodControl(Terrain terrain)
public TerrainLodControl(com.jme3.renderer.Camera camera)
public TerrainLodControl(Terrain terrain, com.jme3.renderer.Camera camera)
public TerrainLodControl(Terrain terrain, java.util.List<com.jme3.renderer.Camera> cameras)
terrain - to act upon (must be a Spatial)cameras - one or more cameras to reference for LOD calcprotected DistanceLodCalculator makeLodCalculator()
public void setUseRenderCamera(boolean useRenderCamera)
useRenderCamera - true if need to use a camera from render view port.public boolean isUseRenderCamera()
protected void controlRender(com.jme3.renderer.RenderManager rm,
com.jme3.renderer.ViewPort vp)
controlRender in class com.jme3.scene.control.AbstractControlprotected void controlUpdate(float tpf)
controlUpdate in class com.jme3.scene.control.AbstractControlpublic void detachAndCleanUpControl()
protected void updateLOD(LodCalculator lodCalculator)
protected void updateLOD(com.jme3.util.SafeArrayList<com.jme3.math.Vector3f> locations,
LodCalculator lodCalculator)
protected boolean updateLodOffCount(LodCalculator lodCalculator)
public void forceUpdate()
protected void prepareTerrain()
protected TerrainLodControl.UpdateLOD createLodUpdateTask(java.util.List<com.jme3.math.Vector3f> locations, LodCalculator lodCalculator)
public java.lang.Object jmeClone()
jmeClone in interface com.jme3.util.clone.JmeCloneablejmeClone in class com.jme3.scene.control.AbstractControlpublic void cloneFields(com.jme3.util.clone.Cloner cloner,
java.lang.Object original)
cloneFields in interface com.jme3.util.clone.JmeCloneablecloneFields in class com.jme3.scene.control.AbstractControlpublic com.jme3.scene.control.Control cloneForSpatial(com.jme3.scene.Spatial spatial)
cloneForSpatial in interface com.jme3.scene.control.ControlcloneForSpatial in class com.jme3.scene.control.AbstractControlpublic void setCamera(com.jme3.renderer.Camera camera)
public void setCameras(java.util.List<com.jme3.renderer.Camera> cameras)
public void setSpatial(com.jme3.scene.Spatial spatial)
setSpatial in interface com.jme3.scene.control.ControlsetSpatial in class com.jme3.scene.control.AbstractControlpublic void setTerrain(Terrain terrain)
public LodCalculator getLodCalculator()
public void setLodCalculator(LodCalculator lodCalculator)
public void setEnabled(boolean enabled)
setEnabled in class com.jme3.scene.control.AbstractControlpublic void write(com.jme3.export.JmeExporter ex)
throws java.io.IOException
write in interface com.jme3.export.Savablewrite in class com.jme3.scene.control.AbstractControljava.io.IOExceptionpublic void read(com.jme3.export.JmeImporter im)
throws java.io.IOException
read in interface com.jme3.export.Savableread in class com.jme3.scene.control.AbstractControljava.io.IOException