Class UpdateControl

All Implemented Interfaces:
Savable, Control, JmeCloneable, Cloneable

public class UpdateControl extends AbstractControl
Allows for enqueueing tasks onto the update loop / rendering thread. Usage: mySpatial.addControl(new UpdateControl()); // add it once mySpatial.getControl(UpdateControl.class).enqueue(new Callable() { public Object call() throws Exception { // do stuff here return null; } });
  • Constructor Details

    • UpdateControl

      public UpdateControl()
  • Method Details

    • enqueue

      public <V> Future<V> enqueue(Callable<V> callable)
      Enqueues a task/callable object to execute in the jME3 rendering thread.
      Type Parameters:
      V - type of result returned by the Callable
      callable - the Callable to run
      a new instance
    • controlUpdate

      protected void controlUpdate(float tpf)
      Description copied from class: AbstractControl
      To be implemented in subclass.
      Specified by:
      controlUpdate in class AbstractControl
      tpf - time per frame (in seconds)
    • controlRender

      protected void controlRender(RenderManager rm, ViewPort vp)
      Description copied from class: AbstractControl
      To be implemented in subclass.
      Specified by:
      controlRender in class AbstractControl
      rm - the RenderManager rendering the controlled Spatial (not null)
      vp - the ViewPort being rendered (not null)
    • jmeClone

      public Object jmeClone()
      Description copied from interface: JmeCloneable
      Performs a regular shallow clone of the object. Some fields may also be cloned but generally only if they will never be shared with other objects. (For example, local Vector3fs and so on.)

      This method is separate from the regular clone() method so that objects might still maintain their own regular java clone() semantics (perhaps even using Cloner for those methods). However, because Java's clone() has specific features in the sense of Object's clone() implementation, it's usually best to have some path for subclasses to bypass the public clone() method that might be cloning fields and instead get at the superclass protected clone() methods. For example, through super.jmeClone() or another protected clone method that some base class eventually calls super.clone() in.

      Specified by:
      jmeClone in interface JmeCloneable
      jmeClone in class AbstractControl
      a new instance