Class ODEBody
java.lang.Object
com.marginallyclever.ro3.node.Node
com.marginallyclever.ro3.node.nodes.pose.Pose
com.marginallyclever.ro3.node.nodes.odenode.ODENode
com.marginallyclever.ro3.node.nodes.odenode.odebody.ODEBody
- All Implemented Interfaces:
PoseChangeListener
,EventListener
- Direct Known Subclasses:
ODEBox
,ODECapsule
,ODECylinder
,ODESphere
An ODENode
that represents a body with a geometry in the ODE physics engine. This node is responsible
for the DBody
, DMass
, and DGeom
. Classes which extend this class are responsible for the
visual and physical representation of the shape.
TODO: They should not be responsible for the visual representation because physical and visual shape don't always match.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
void
void
Fired after an ODEBody is attached to the scene.void
Fired after an ODEBody is detached from the scene.void
fromJSON
(org.json.JSONObject from) Deserialize this node and its children from a JSON object and its children.void
getComponents
(List<JPanel> list) Build a Swing Component that represents this Node.org.ode4j.ode.DGeom
getGeom()
getIcon()
Set a custom icon for this node.double
org.ode4j.ode.DBody
boolean
void
onPoseChange
(Pose pose) Override this method to receive pose change events from the parent.void
void
void
setAngularVel
(javax.vecmath.Vector3d angularVel) void
setLinearVel
(javax.vecmath.Vector3d linearVel) void
setLocal
(javax.vecmath.Matrix4d m) Set the local transform of this pose.void
setMassQty
(double massQty) void
setTouchingSomething
(boolean isTouchingSomething) org.json.JSONObject
toJSON()
Serialize this node and its children to a JSON object and its children.void
update
(double dt) Called every frame.Methods inherited from class com.marginallyclever.ro3.node.nodes.pose.Pose
addPoseChangeListener, getLocal, getParentPose, getPosition, getRotationEuler, getRotationIndex, getWorld, removePoseChangeListener, setPosition, setRotationEuler, setRotationIndex, setWorld
Methods inherited from class com.marginallyclever.ro3.node.Node
addAttachListener, addChild, addChild, addDetachListener, addReadyListener, addRenameListener, findByPath, findChild, findChild, findFirstChild, findFirstSibling, findNodeByID, findParent, findParent, getAbsolutePath, getChildren, getName, getParent, getRootNode, getUniqueID, hasParent, isNameUsedBySibling, removeAttachListener, removeChild, removeDetachListener, removeReadyListener, removeRenameListener, setName, witnessProtection
-
Constructor Details
-
ODEBody
public ODEBody() -
ODEBody
-
-
Method Details
-
getComponents
Description copied from class:Pose
Build a Swing Component that represents this Node.- Overrides:
getComponents
in classPose
- Parameters:
list
- the list to add components to.
-
update
public void update(double dt) Description copied from class:Node
Called every frame. -
getIcon
Description copied from class:Node
Set a custom icon for this node. -
getMassQty
public double getMassQty() -
setMassQty
public void setMassQty(double massQty) - Parameters:
massQty
- must be >= 0
-
getODEBody
public org.ode4j.ode.DBody getODEBody() -
toJSON
public org.json.JSONObject toJSON()Description copied from class:Node
Serialize this node and its children to a JSON object and its children. Classes that override this method should call super.toJSON() first, then add to the object returned. -
fromJSON
public void fromJSON(org.json.JSONObject from) Description copied from class:Node
Deserialize this node and its children from a JSON object and its children. Classes that override this method should call super.fromJSON(). When they do it will trigger the creation of child nodes. The child nodes will then call their own fromJSON() methods. -
setAngularVel
public void setAngularVel(javax.vecmath.Vector3d angularVel) -
setLinearVel
public void setLinearVel(javax.vecmath.Vector3d linearVel) -
getGeom
public org.ode4j.ode.DGeom getGeom() -
isTouchingSomething
public boolean isTouchingSomething() -
setTouchingSomething
public void setTouchingSomething(boolean isTouchingSomething) -
setLocal
public void setLocal(javax.vecmath.Matrix4d m) Description copied from class:Pose
Set the local transform of this pose. This is the best method to override if you want to capture changes to the local OR world transform. -
onPoseChange
Description copied from class:Pose
Override this method to receive pose change events from the parent.- Specified by:
onPoseChange
in interfacePoseChangeListener
- Overrides:
onPoseChange
in classPose
- Parameters:
pose
- the parent pose that has changed.
-
fireODEAttach
public void fireODEAttach()Fired after an ODEBody is attached to the scene. -
fireODEDetach
public void fireODEDetach()Fired after an ODEBody is detached from the scene. -
addODEDetachListener
-
removeODEDetachListener
-
addODEAttachListener
-
removeODEAttachListener
-