public abstract class AbstractControl extends java.lang.Object implements Control, JmeCloneable
Modifier and Type | Field and Description |
---|---|
protected boolean |
enabled |
protected Spatial |
spatial |
Constructor and Description |
---|
AbstractControl() |
Modifier and Type | Method and Description |
---|---|
void |
cloneFields(Cloner cloner,
java.lang.Object original)
Implemented to perform deep cloning for this object, resolving
local cloned references using the specified cloner.
|
Control |
cloneForSpatial(Spatial spatial)
Deprecated.
|
protected abstract void |
controlRender(RenderManager rm,
ViewPort vp)
To be implemented in subclass.
|
protected abstract void |
controlUpdate(float tpf)
To be implemented in subclass.
|
Spatial |
getSpatial() |
boolean |
isEnabled() |
java.lang.Object |
jmeClone()
Performs a regular shallow clone of the object.
|
void |
read(JmeImporter im) |
void |
render(RenderManager rm,
ViewPort vp)
Should be called prior to queuing the spatial by the RenderManager.
|
void |
setEnabled(boolean enabled) |
void |
setSpatial(Spatial spatial) |
void |
update(float tpf)
Updates the control.
|
void |
write(JmeExporter ex) |
protected boolean enabled
protected Spatial spatial
public void setSpatial(Spatial spatial)
setSpatial
in interface Control
spatial
- the spatial to be controlled. This should not be called
from user code.public Spatial getSpatial()
public void setEnabled(boolean enabled)
public boolean isEnabled()
protected abstract void controlUpdate(float tpf)
tpf
- time per frame (in seconds)protected abstract void controlRender(RenderManager rm, ViewPort vp)
rm
- the RenderManager rendering the controlled Spatial (not null)vp
- the ViewPort being rendered (not null)@Deprecated public Control cloneForSpatial(Spatial spatial)
Control
cloneForSpatial
in interface Control
spatial
- the Spatial to be controlled by the clonepublic java.lang.Object jmeClone()
JmeCloneable
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.
jmeClone
in interface JmeCloneable
public void cloneFields(Cloner cloner, java.lang.Object original)
JmeCloneable
Note: during normal clone operations the original object will not be needed as the clone has already had all of the fields shallow copied.
cloneFields
in interface JmeCloneable
cloner
- The cloner that is performing the cloning operation. The
cloneFields method can call back into the cloner to make
clones of its subordinate fields.original
- The original object from which this object was cloned.
This is provided for the very rare case that this object needs
to refer to its original for some reason. In general, all of
the relevant values should have been transferred during the
shallow clone, and this object need only clone what it wants.public void update(float tpf)
Control
public void render(RenderManager rm, ViewPort vp)
Control
public void write(JmeExporter ex) throws java.io.IOException
public void read(JmeImporter im) throws java.io.IOException