us.ihmc.utilities.math.geometry
Class ReferenceFrame

java.lang.Object
  extended by us.ihmc.utilities.math.geometry.ReferenceFrame
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
CenterOfMassReferenceFrame, MidFrameZUpFrame, OneDoFJointReferenceFrame, OrientationFrame, OriginAndPointFrame, PlanarJointReferenceFrame, PointXAxisAtPositionFrame, Pose2dReferenceFrame, PoseReferenceFrame, SixDoFJointReferenceFrame, TransformReferenceFrame, TranslationFrame, TranslationReferenceFrame, XYPlaneFrom3PointsFrame, ZUpFrame

public abstract class ReferenceFrame
extends java.lang.Object
implements java.io.Serializable

ReferemceFrame

Description: ReferenceFrame is used to represent a reference coordinate frame. One constructor allows the creation of a "root" frame with no parent. The other creates a child frame that has a reference and transform to a parent. ReferenceFrames are used in classes like FramePoint to indicate which frame the point is defined in.

See Also:
Serialized Form

Constructor Summary
ReferenceFrame(java.lang.String frameName, boolean isBodyCenteredFrame, boolean isWorldFrame, boolean isZupFrame)
          This constructor creates a "top level" reference frame with the specified name.
ReferenceFrame(java.lang.String frameName, ReferenceFrame parentFrame)
           
ReferenceFrame(java.lang.String frameName, ReferenceFrame parentFrame, boolean isBodyCenteredFrame, boolean isWorldFrame, boolean isZupFrame)
           
ReferenceFrame(java.lang.String frameName, ReferenceFrame parentFrame, javax.media.j3d.Transform3D transformToParent, boolean isBodyCenteredFrame, boolean isWorldFrame, boolean isZupFrame)
          This constructor creates a child reference frame with the specified name.
 
Method Summary
 void checkIsWorldFrame()
           
 void checkReferenceFrameMatch(ReferenceFrame referenceFrame)
           
static ReferenceFrame constructARootFrame(java.lang.String frameName)
           
static ReferenceFrame constructARootFrame(java.lang.String frameName, boolean isBodyCenteredFrame, boolean isWorldFrame, boolean isZupFrame)
           
static ReferenceFrame constructAWorldFrame(java.lang.String frameName)
           
static ReferenceFrame constructBodyFrameWithUnchangingTransformToParent(java.lang.String frameName, ReferenceFrame parentFrame, javax.media.j3d.Transform3D transformToParent)
           
static ReferenceFrame constructBodyFrameWithUnchangingTranslationFromParent(java.lang.String frameName, ReferenceFrame parentFrame, javax.vecmath.Vector3d translationFromParent)
           
static ReferenceFrame constructBodyZUpFrameWithUnchangingTransformToParent(java.lang.String frameName, ReferenceFrame parentFrame, javax.media.j3d.Transform3D transformToParent)
           
static ReferenceFrame constructFrameWithUnchangingTransformToParent(java.lang.String frameName, ReferenceFrame parentFrame, javax.media.j3d.Transform3D transformToParent)
           
static ReferenceFrame constructFrameWithUnchangingTransformToParent(java.lang.String frameName, ReferenceFrame parentFrame, javax.media.j3d.Transform3D transformToParent, boolean isBodyCenteredFrame, boolean isWorldFrame, boolean isZupFrame)
           
static ReferenceFrame constructReferenceFrameFromPointAndZAxis(java.lang.String frameName, FramePoint point, FrameVector zAxis)
           
 java.lang.String getName()
           
 ReferenceFrame getParent()
          getParent Returns the parent frame of this reference frame
 ReferenceFrame getRootFrame()
           
 javax.media.j3d.Transform3D getTransformToDesiredFrame(ReferenceFrame desiredFrame)
           
 void getTransformToDesiredFrame(javax.media.j3d.Transform3D transformToPack, ReferenceFrame desiredFrame)
           
 javax.media.j3d.Transform3D getTransformToParent()
          getTransformToParent Returns a Transform3D that can be applied to a vector defined in this frame in order to obtain the equivalent vector in the parent frame
static ReferenceFrame getWorldFrame()
           
 boolean isBodyCenteredFrame()
           
 boolean isChildFrame(ReferenceFrame frame)
           
 boolean isParentFrame(ReferenceFrame frame)
           
static boolean isTransformationInPlane(javax.media.j3d.Transform3D transform)
           
 boolean isWorldFrame()
           
 boolean isZupFrame()
           
 java.lang.String toString()
           
 void update()
          The user must call update each tick.
abstract  void updateTransformToParent(javax.media.j3d.Transform3D transformToParent)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ReferenceFrame

public ReferenceFrame(java.lang.String frameName,
                      ReferenceFrame parentFrame)

ReferenceFrame

public ReferenceFrame(java.lang.String frameName,
                      boolean isBodyCenteredFrame,
                      boolean isWorldFrame,
                      boolean isZupFrame)
This constructor creates a "top level" reference frame with the specified name. The parent frame and transforms are null.

Parameters:
frameName - String

ReferenceFrame

public ReferenceFrame(java.lang.String frameName,
                      ReferenceFrame parentFrame,
                      javax.media.j3d.Transform3D transformToParent,
                      boolean isBodyCenteredFrame,
                      boolean isWorldFrame,
                      boolean isZupFrame)
This constructor creates a child reference frame with the specified name. The parent frame can be a "top level" frame or another child. The Transform defines how to convert a vector from the parent frame to the child frame. An inverse transform is created automatically based on the provided frame.

Parameters:
frameName - String
parentFrame - Frame
transformToParent - Transform3D

ReferenceFrame

public ReferenceFrame(java.lang.String frameName,
                      ReferenceFrame parentFrame,
                      boolean isBodyCenteredFrame,
                      boolean isWorldFrame,
                      boolean isZupFrame)
Method Detail

constructAWorldFrame

public static ReferenceFrame constructAWorldFrame(java.lang.String frameName)

constructARootFrame

public static ReferenceFrame constructARootFrame(java.lang.String frameName)

constructARootFrame

public static ReferenceFrame constructARootFrame(java.lang.String frameName,
                                                 boolean isBodyCenteredFrame,
                                                 boolean isWorldFrame,
                                                 boolean isZupFrame)

constructReferenceFrameFromPointAndZAxis

public static ReferenceFrame constructReferenceFrameFromPointAndZAxis(java.lang.String frameName,
                                                                      FramePoint point,
                                                                      FrameVector zAxis)

constructBodyZUpFrameWithUnchangingTransformToParent

public static ReferenceFrame constructBodyZUpFrameWithUnchangingTransformToParent(java.lang.String frameName,
                                                                                  ReferenceFrame parentFrame,
                                                                                  javax.media.j3d.Transform3D transformToParent)

constructBodyFrameWithUnchangingTranslationFromParent

public static ReferenceFrame constructBodyFrameWithUnchangingTranslationFromParent(java.lang.String frameName,
                                                                                   ReferenceFrame parentFrame,
                                                                                   javax.vecmath.Vector3d translationFromParent)

constructBodyFrameWithUnchangingTransformToParent

public static ReferenceFrame constructBodyFrameWithUnchangingTransformToParent(java.lang.String frameName,
                                                                               ReferenceFrame parentFrame,
                                                                               javax.media.j3d.Transform3D transformToParent)

constructFrameWithUnchangingTransformToParent

public static ReferenceFrame constructFrameWithUnchangingTransformToParent(java.lang.String frameName,
                                                                           ReferenceFrame parentFrame,
                                                                           javax.media.j3d.Transform3D transformToParent)

constructFrameWithUnchangingTransformToParent

public static ReferenceFrame constructFrameWithUnchangingTransformToParent(java.lang.String frameName,
                                                                           ReferenceFrame parentFrame,
                                                                           javax.media.j3d.Transform3D transformToParent,
                                                                           boolean isBodyCenteredFrame,
                                                                           boolean isWorldFrame,
                                                                           boolean isZupFrame)

getWorldFrame

public static ReferenceFrame getWorldFrame()

isBodyCenteredFrame

public boolean isBodyCenteredFrame()

isWorldFrame

public boolean isWorldFrame()

isZupFrame

public boolean isZupFrame()

update

public void update()
The user must call update each tick. It will then call updateTransformToParent.


updateTransformToParent

public abstract void updateTransformToParent(javax.media.j3d.Transform3D transformToParent)

getParent

public ReferenceFrame getParent()
getParent Returns the parent frame of this reference frame

Returns:
Frame

getRootFrame

public ReferenceFrame getRootFrame()

getTransformToParent

public javax.media.j3d.Transform3D getTransformToParent()
getTransformToParent Returns a Transform3D that can be applied to a vector defined in this frame in order to obtain the equivalent vector in the parent frame

Returns:
Transform3D

getName

public java.lang.String getName()

getTransformToDesiredFrame

public javax.media.j3d.Transform3D getTransformToDesiredFrame(ReferenceFrame desiredFrame)

getTransformToDesiredFrame

public void getTransformToDesiredFrame(javax.media.j3d.Transform3D transformToPack,
                                       ReferenceFrame desiredFrame)

isParentFrame

public boolean isParentFrame(ReferenceFrame frame)

isChildFrame

public boolean isChildFrame(ReferenceFrame frame)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

checkReferenceFrameMatch

public void checkReferenceFrameMatch(ReferenceFrame referenceFrame)
                              throws ReferenceFrameMismatchException
Throws:
ReferenceFrameMismatchException

checkIsWorldFrame

public void checkIsWorldFrame()
                       throws java.lang.RuntimeException
Throws:
java.lang.RuntimeException

isTransformationInPlane

public static boolean isTransformationInPlane(javax.media.j3d.Transform3D transform)