Package com.jme3.scene.control
Class AbstractControl
java.lang.Object
com.jme3.scene.control.AbstractControl
- All Implemented Interfaces:
Savable
,Control
,JmeCloneable
,Cloneable
- Direct Known Subclasses:
AbstractPhysicsDebugControl
,AnimComposer
,AnimControl
,BillboardControl
,CameraControl
,EffectTrack.KillParticleControl
,LightControl
,LodControl
,MorphControl
,NormalRecalcControl
,SkeletonControl
,SkinningControl
,TerrainLodControl
,UpdateControl
An abstract implementation of the Control interface.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
cloneFields
(Cloner cloner, Object original) Implemented to perform deep cloning for this object, resolving local cloned references using the specified cloner.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.boolean
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)
-
Field Details
-
enabled
protected boolean enabled -
spatial
-
-
Constructor Details
-
AbstractControl
public AbstractControl()
-
-
Method Details
-
setSpatial
- Specified by:
setSpatial
in interfaceControl
- Parameters:
spatial
- the spatial to be controlled. This should not be called from user code.
-
getSpatial
-
setEnabled
public void setEnabled(boolean enabled) -
isEnabled
public boolean isEnabled() -
controlUpdate
protected abstract void controlUpdate(float tpf) To be implemented in subclass.- Parameters:
tpf
- time per frame (in seconds)
-
controlRender
To be implemented in subclass.- Parameters:
rm
- the RenderManager rendering the controlled Spatial (not null)vp
- the ViewPort being rendered (not null)
-
cloneForSpatial
Deprecated.Description copied from interface:Control
Creates a clone of the Control, the given Spatial is the cloned version of the spatial to which this control is attached to.- Specified by:
cloneForSpatial
in interfaceControl
- Parameters:
spatial
- the Spatial to be controlled by the clone- Returns:
- A clone of this control for the spatial
-
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 interfaceJmeCloneable
- Returns:
- a new instance
-
cloneFields
Description copied from interface:JmeCloneable
Implemented to perform deep cloning for this object, resolving local cloned references using the specified cloner. The object can call cloner.clone(fieldValue) to deep clone any of its fields.Note: during normal clone operations the original object will not be needed as the clone has already had all of the fields shallow copied.
- Specified by:
cloneFields
in interfaceJmeCloneable
- Parameters:
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.
-
update
public void update(float tpf) Description copied from interface:Control
Updates the control. This should not be called from user code. -
render
Description copied from interface:Control
Should be called prior to queuing the spatial by the RenderManager. This should not be called from user code. -
write
- Specified by:
write
in interfaceSavable
- Throws:
IOException
-
read
- Specified by:
read
in interfaceSavable
- Throws:
IOException
-