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 java.util.List<com.jme3.renderer.Camera> |
cameras |
protected java.util.concurrent.ExecutorService |
executor |
protected java.util.concurrent.Future<java.util.HashMap<java.lang.String,UpdatedTerrainPatch>> |
indexer |
protected java.util.List<com.jme3.math.Vector3f> |
lastCameraLocations |
protected LodCalculator |
lodCalculator |
| Constructor and Description |
|---|
TerrainLodControl() |
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 java.util.concurrent.ExecutorService |
createExecutorService() |
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() |
protected TerrainLodControl.UpdateLOD |
getLodThread(java.util.List<com.jme3.math.Vector3f> locations,
LodCalculator lodCalculator) |
protected boolean |
isLodCalcRunning() |
java.lang.Object |
jmeClone() |
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 |
setExecutor(java.util.concurrent.ExecutorService executor)
Set your own custom executor to be used.
|
protected void |
setLodCalcRunning(boolean running) |
void |
setLodCalculator(LodCalculator lodCalculator) |
void |
setSpatial(com.jme3.scene.Spatial spatial) |
void |
setTerrain(Terrain terrain) |
protected void |
updateLOD(java.util.List<com.jme3.math.Vector3f> locations,
LodCalculator lodCalculator) |
void |
write(com.jme3.export.JmeExporter ex) |
protected java.util.List<com.jme3.renderer.Camera> cameras
protected LodCalculator lodCalculator
protected java.util.List<com.jme3.math.Vector3f> lastCameraLocations
protected java.util.concurrent.ExecutorService executor
protected java.util.concurrent.Future<java.util.HashMap<java.lang.String,UpdatedTerrainPatch>> indexer
public TerrainLodControl()
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 void controlRender(com.jme3.renderer.RenderManager rm,
com.jme3.renderer.ViewPort vp)
controlRender in class com.jme3.scene.control.AbstractControlpublic void setExecutor(java.util.concurrent.ExecutorService executor)
protected java.util.concurrent.ExecutorService createExecutorService()
protected void controlUpdate(float tpf)
controlUpdate in class com.jme3.scene.control.AbstractControlpublic void detachAndCleanUpControl()
protected void updateLOD(java.util.List<com.jme3.math.Vector3f> locations,
LodCalculator lodCalculator)
public void forceUpdate()
protected void prepareTerrain()
protected TerrainLodControl.UpdateLOD getLodThread(java.util.List<com.jme3.math.Vector3f> locations, LodCalculator lodCalculator)
protected boolean isLodCalcRunning()
protected void setLodCalcRunning(boolean running)
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