All Implemented Interfaces:
PoseChangeListener, EventListener
Direct Known Subclasses:
ODEBox, ODECapsule, ODECylinder, ODESphere

public abstract class ODEBody extends ODENode

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 Details

    • ODEBody

      public ODEBody()
    • ODEBody

      public ODEBody(String name)
  • Method Details

    • getComponents

      public void getComponents(List<JPanel> list)
      Description copied from class: Pose
      Build a Swing Component that represents this Node.
      Overrides:
      getComponents in class Pose
      Parameters:
      list - the list to add components to.
    • update

      public void update(double dt)
      Description copied from class: Node
      Called every frame.
      Overrides:
      update in class ODENode
      Parameters:
      dt - the time since the last frame.
    • getIcon

      public Icon getIcon()
      Description copied from class: Node
      Set a custom icon for this node.
      Overrides:
      getIcon in class Pose
      Returns:
      the icon, or null if none.
    • 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.
      Overrides:
      toJSON in class Pose
      Returns:
      the JSON object.
    • 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.
      Overrides:
      fromJSON in class ODENode
      Parameters:
      from - the JSON object to read from.
    • 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.
      Overrides:
      setLocal in class Pose
      Parameters:
      m - the new local transform.
    • onPoseChange

      public void onPoseChange(Pose pose)
      Description copied from class: Pose
      Override this method to receive pose change events from the parent.
      Specified by:
      onPoseChange in interface PoseChangeListener
      Overrides:
      onPoseChange in class Pose
      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

      public void addODEDetachListener(ODELinkDetachListener o)
    • removeODEDetachListener

      public void removeODEDetachListener(ODELinkDetachListener o)
    • addODEAttachListener

      public void addODEAttachListener(ODELinkAttachListener o)
    • removeODEAttachListener

      public void removeODEAttachListener(ODELinkAttachListener o)