Package com.jme3.bullet.control
Class JoinedBodyControl
java.lang.Object
com.jme3.bullet.control.AbstractPhysicsControl
com.jme3.bullet.control.JoinedBodyControl
- All Implemented Interfaces:
PhysicsControl,com.jme3.export.Savable,com.jme3.scene.control.Control,com.jme3.util.clone.JmeCloneable,Cloneable
A custom PhysicsControl for a dynamic rigid body that can be joined to other
bodies. When the Control is removed from a space, all its joints are
automatically destroyed.
-
Field Summary
FieldsFields inherited from class com.jme3.bullet.control.AbstractPhysicsControl
added, logger -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedNo-argument constructor needed by SavableClassUtil.JoinedBodyControl(CollisionShape bodyShape, float mass) Instantiate an enabled Control in dynamic mode. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidAdd all managed physics objects to the PhysicsSpace.voidcloneFields(com.jme3.util.clone.Cloner cloner, Object original) Callback fromClonerto convert this shallow-cloned Control into a deep-cloned one, using the specified Cloner and original to resolve copied fields.protected voidcreateSpatialData(com.jme3.scene.Spatial spatial) Create spatial-dependent data.Access the rigid body managed by this Control.booleanTest whether the body is in kinematic mode.voidread(com.jme3.export.JmeImporter importer) De-serialize this Control from the specified importer, for example when loading from a J3O file.protected voidRemove all managed physics objects from the PhysicsSpace.protected voidremoveSpatialData(com.jme3.scene.Spatial spatial) Destroy spatial-dependent data.voidsetKinematic(boolean newSetting) Transition the body from kinematic mode to dynamic mode or vice versa.voidsetPhysicsLocation(com.jme3.math.Vector3f newLocation) Translate the body instantly to the specified location.protected voidsetPhysicsRotation(com.jme3.math.Quaternion newOrientation) Rotate the body instantly to the specified orientation.voidupdate(float tpf) Update this Control.voidwrite(com.jme3.export.JmeExporter exporter) Serialize this Control to the specified exporter, for example when saving to a J3O file.Methods inherited from class com.jme3.bullet.control.AbstractPhysicsControl
applyPhysicsTransform, cloneForSpatial, getPhysicsSpace, getSpatial, getSpatialRotation, getSpatialTranslation, isApplyPhysicsLocal, isEnabled, jmeClone, render, setApplyPhysicsLocal, setEnabled, setPhysicsSpace, setSpatial
-
Field Details
-
logger3
message logger for this class
-
-
Constructor Details
-
JoinedBodyControl
protected JoinedBodyControl()No-argument constructor needed by SavableClassUtil. -
JoinedBodyControl
Instantiate an enabled Control in dynamic mode.- Parameters:
bodyShape- the desired shape for the rigid body (not null, alias created)mass- the desired mass for the rigid body (gt;0)
-
-
Method Details
-
getRigidBody
Access the rigid body managed by this Control.- Returns:
- the pre-existing rigid body (not null)
-
isKinematic
public boolean isKinematic()Test whether the body is in kinematic mode.- Returns:
- true if in kinematic mode, otherwise false (in dynamic mode)
-
setKinematic
public void setKinematic(boolean newSetting) Transition the body from kinematic mode to dynamic mode or vice versa.- Parameters:
newSetting- true→set kinematic mode, false→set dynamic mode (default=false)
-
addPhysics
protected void addPhysics()Add all managed physics objects to the PhysicsSpace.- Specified by:
addPhysicsin classAbstractPhysicsControl
-
cloneFields
Callback fromClonerto convert this shallow-cloned Control into a deep-cloned one, using the specified Cloner and original to resolve copied fields.- Specified by:
cloneFieldsin interfacecom.jme3.util.clone.JmeCloneable- Overrides:
cloneFieldsin classAbstractPhysicsControl- Parameters:
cloner- the Cloner that's cloning this Control (not null, modified)original- the instance from which this Control was shallow-cloned (not null, unaffected)
-
createSpatialData
protected void createSpatialData(com.jme3.scene.Spatial spatial) Create spatial-dependent data. Invoked when this Control is added to a Spatial.- Specified by:
createSpatialDatain classAbstractPhysicsControl- Parameters:
spatial- the controlled Spatial (not null, alias created)
-
read
De-serialize this Control from the specified importer, for example when loading from a J3O file.- Specified by:
readin interfacecom.jme3.export.Savable- Overrides:
readin classAbstractPhysicsControl- Parameters:
importer- (not null)- Throws:
IOException- from the importer
-
removePhysics
protected void removePhysics()Remove all managed physics objects from the PhysicsSpace.- Specified by:
removePhysicsin classAbstractPhysicsControl
-
removeSpatialData
protected void removeSpatialData(com.jme3.scene.Spatial spatial) Destroy spatial-dependent data. Invoked when this Control is removed from its Spatial.- Specified by:
removeSpatialDatain classAbstractPhysicsControl- Parameters:
spatial- the Spatial to which this Control was added (unused)
-
setPhysicsLocation
public void setPhysicsLocation(com.jme3.math.Vector3f newLocation) Translate the body instantly to the specified location.- Specified by:
setPhysicsLocationin classAbstractPhysicsControl- Parameters:
newLocation- the desired location (in physics-space coordinates, not null, finite, unaffected)
-
setPhysicsRotation
protected void setPhysicsRotation(com.jme3.math.Quaternion newOrientation) Rotate the body instantly to the specified orientation.- Specified by:
setPhysicsRotationin classAbstractPhysicsControl- Parameters:
newOrientation- the desired orientation (in physics-space coordinates, not null, not zero, unaffected)
-
update
public void update(float tpf) Update this Control. Invoked once per frame, during the logical-state update, provided the Control is added to a scene. Do not invoke directly from user code.- Parameters:
tpf- the time interval between frames (in seconds, ≥0)
-
write
Serialize this Control to the specified exporter, for example when saving to a J3O file.- Specified by:
writein interfacecom.jme3.export.Savable- Overrides:
writein classAbstractPhysicsControl- Parameters:
exporter- (not null)- Throws:
IOException- from the exporter
-