us.ihmc.utilities.math.geometry
Class FramePoint

java.lang.Object
  extended by us.ihmc.utilities.math.geometry.FramePoint
All Implemented Interfaces:
java.io.Serializable, ReferenceFrameHolder

public class FramePoint
extends java.lang.Object
implements ReferenceFrameHolder, java.io.Serializable

See Also:
Serialized Form

Constructor Summary
FramePoint()
           
FramePoint(FramePoint framePoint)
           
FramePoint(FramePoint framePoint, java.lang.String name)
           
FramePoint(FrameVector frameVector)
           
FramePoint(FrameVector frameVector, java.lang.String name)
           
FramePoint(ReferenceFrame referenceFrame)
          FramePoint

A normal point associated with a specific reference frame

FramePoint(ReferenceFrame referenceFrame, double[] position)
           
FramePoint(ReferenceFrame referenceFrame, double[] position, java.lang.String name)
           
FramePoint(ReferenceFrame referenceFrame, double x, double y, double z)
          FramePoint

A normal point associated with a specific reference frame.

FramePoint(ReferenceFrame referenceFrame, double x, double y, double z, java.lang.String name)
           
FramePoint(ReferenceFrame referenceFrame, java.lang.String name)
           
FramePoint(ReferenceFrame referenceFrame, javax.vecmath.Tuple3d position)
           
FramePoint(ReferenceFrame referenceFrame, javax.vecmath.Tuple3d position, java.lang.String name)
           
 
Method Summary
 void add(FramePoint framePoint)
           
 void add(FramePoint point1, FramePoint point2)
           
 void add(FramePoint point1, FrameVector vector2)
           
 void add(FrameVector frameVector)
           
 void add(FrameVector vector1, FramePoint point2)
           
 void add(javax.vecmath.Tuple3d tuple3d)
           
 void applyTransform(javax.media.j3d.Transform3D transform)
           
 FramePoint applyTransformCopy(javax.media.j3d.Transform3D transform3D)
           
static FramePoint average(java.util.List<? extends FramePoint> framePoints)
           
 void changeFrame(ReferenceFrame desiredFrame)
          Changes frame of this FramePoint to the given ReferenceFrame.
 FramePoint changeFrameCopy(ReferenceFrame desiredFrame)
          Changes frame of this FramePoint to the given ReferenceFrame and returns a copy.
static FramePoint[] changeFrameCopyBatch(FramePoint[] framePoints, ReferenceFrame desiredFrame)
           
 void changeFrameUsingTransform(ReferenceFrame desiredFrame, javax.media.j3d.Transform3D transformToNewFrame)
          Changes frame of this FramePoint to the given ReferenceFrame, using the given Transform3D.
 FramePoint changeFrameUsingTransformCopy(ReferenceFrame desiredFrame, javax.media.j3d.Transform3D transformToNewFrame)
          Changes frame of this FramePoint to the given ReferenceFrame, using the given Transform3D and returns a copy.
 void checkForNaN()
           
 void checkReferenceFrameMatch(ReferenceFrame frame)
           
 void checkReferenceFrameMatch(ReferenceFrameHolder referenceFrameHolder)
           
 boolean containsNaN()
           
 double distance(FramePoint framePoint)
           
 double distanceSquared(FramePoint framePoint)
           
 boolean epsilonEquals(FramePoint framePoint, double threshold)
           
 boolean epsilonEquals(FrameVector frameVector, double threshold)
           
 double get(Direction direction)
           
static FramePoint getMidPoint(FramePoint point1, FramePoint point2)
           
 java.lang.String getName()
           
 javax.vecmath.Point3d getPoint()
          Returns the Point3d used in this FramePoint
 void getPoint(javax.vecmath.Tuple3d tuple3dToPack)
           
 javax.vecmath.Point3d getPointCopy()
          Returns a deep copy of the point in this FramePoint.
 ReferenceFrame getReferenceFrame()
           
 void getVector(javax.vecmath.Vector3d vector)
           
 javax.vecmath.Vector3d getVectorCopy()
          Returns a vector copy of the Point3d used in this FramePoint
 double getX()
           
 double getXYplaneDistance(FramePoint framePoint)
           
 double getY()
           
 double getZ()
           
 void interpolate(FramePoint framePoint1, FramePoint framePoint2, double alpha)
           
static FramePoint load(java.io.BufferedReader bufferedReader, ReferenceFrame referenceFrame)
           
static FramePoint morph(FramePoint point1, FramePoint point2, double alpha)
           
 FramePoint pitchAboutPoint(FramePoint pointToPitchAbout, double pitch)
           
 void save(java.io.PrintWriter printWriter)
           
 void scale(double scaleFactor)
           
 void scale(double scaleFactor, FramePoint point1)
           
 void scale(double scaleFactor, FrameVector vector1)
           
 void scaleAdd(double scaleFactor, FramePoint point1)
           
 void scaleAdd(double scaleFactor, FramePoint point1, FramePoint point2)
           
 void scaleAdd(double scaleFactor, FramePoint point1, FrameVector vector2)
           
 void scaleAdd(double scaleFactor, FrameVector vector1)
           
 void scaleAdd(double scaleFactor, FrameVector vector1, FramePoint point2)
           
 void scaleAdd(double scaleFactor, FrameVector vector1, FrameVector vector2)
           
 void set(Direction direction, double value)
           
 void set(double x, double y, double z)
           
 void set(FramePoint framePoint)
           
 void set(FrameVector frameVector)
           
 void set(ReferenceFrame referenceFrame, double x, double y, double z)
           
 void set(ReferenceFrame referenceFrame, javax.vecmath.Tuple3d tuple)
           
 void set(javax.vecmath.Tuple3d point)
           
 void setAndChangeFrame(FramePoint framePoint)
           
 void setAndChangeFrame(FrameVector frameVector)
           
 void setAndChangeFrame(ReferenceFrame referenceFrame, javax.vecmath.Point3d point)
           
 void setName(java.lang.String name)
           
 void setToZero(ReferenceFrame referenceFrame)
           
 void setX(double x)
           
 void setXY(FramePoint2d framePoint2d)
           
 void setY(double y)
           
 void setZ(double z)
           
 void sub(FramePoint framePoint)
           
 void sub(FramePoint point1, FramePoint point2)
           
 void sub(FramePoint point1, FrameVector vector2)
           
 void sub(FrameVector frameVector)
           
 void sub(FrameVector vector1, FramePoint point2)
           
 double[] toArray()
           
static double[] toArray(FramePoint[] framePoints)
           
 FramePoint2d toFramePoint2d()
          Creates a new FramePoint2d based on the x and y components of this FramePoint
 java.lang.String toString()
          toString

String representation of a FrameVector (x,y,z):reference frame name

 void weightedAverage(FramePoint point1, FramePoint point2, double weightedAverage)
          Sets this point to be the weighted average of the two input points.
 FramePoint yawAboutPoint(FramePoint pointToYawAbout, double yaw)
          yawAboutPoint
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FramePoint

public FramePoint(ReferenceFrame referenceFrame,
                  javax.vecmath.Tuple3d position)

FramePoint

public FramePoint(ReferenceFrame referenceFrame,
                  javax.vecmath.Tuple3d position,
                  java.lang.String name)

FramePoint

public FramePoint(ReferenceFrame referenceFrame,
                  double[] position)

FramePoint

public FramePoint(ReferenceFrame referenceFrame,
                  double[] position,
                  java.lang.String name)

FramePoint

public FramePoint(ReferenceFrame referenceFrame)
FramePoint

A normal point associated with a specific reference frame

Parameters:
referenceFrame - Frame

FramePoint

public FramePoint(ReferenceFrame referenceFrame,
                  java.lang.String name)

FramePoint

public FramePoint(FramePoint framePoint)

FramePoint

public FramePoint(FramePoint framePoint,
                  java.lang.String name)

FramePoint

public FramePoint(FrameVector frameVector)

FramePoint

public FramePoint(FrameVector frameVector,
                  java.lang.String name)

FramePoint

public FramePoint(ReferenceFrame referenceFrame,
                  double x,
                  double y,
                  double z)
FramePoint

A normal point associated with a specific reference frame. The x, y, and z are used to create the point

Parameters:
referenceFrame - Frame
x - double
y - double
z - double

FramePoint

public FramePoint(ReferenceFrame referenceFrame,
                  double x,
                  double y,
                  double z,
                  java.lang.String name)

FramePoint

public FramePoint()
Method Detail

setName

public void setName(java.lang.String name)

getName

public java.lang.String getName()

morph

public static FramePoint morph(FramePoint point1,
                               FramePoint point2,
                               double alpha)

average

public static FramePoint average(java.util.List<? extends FramePoint> framePoints)

getXYplaneDistance

public double getXYplaneDistance(FramePoint framePoint)

getReferenceFrame

public ReferenceFrame getReferenceFrame()
Specified by:
getReferenceFrame in interface ReferenceFrameHolder

distance

public double distance(FramePoint framePoint)

distanceSquared

public double distanceSquared(FramePoint framePoint)

getX

public double getX()

getY

public double getY()

getZ

public double getZ()

get

public double get(Direction direction)

set

public void set(ReferenceFrame referenceFrame,
                double x,
                double y,
                double z)

set

public void set(ReferenceFrame referenceFrame,
                javax.vecmath.Tuple3d tuple)

set

public void set(double x,
                double y,
                double z)

setX

public void setX(double x)

setY

public void setY(double y)

setZ

public void setZ(double z)

set

public void set(Direction direction,
                double value)

scale

public void scale(double scaleFactor)

toArray

public double[] toArray()

toFramePoint2d

public FramePoint2d toFramePoint2d()
Creates a new FramePoint2d based on the x and y components of this FramePoint


scale

public void scale(double scaleFactor,
                  FrameVector vector1)

scale

public void scale(double scaleFactor,
                  FramePoint point1)

scaleAdd

public void scaleAdd(double scaleFactor,
                     FrameVector vector1,
                     FrameVector vector2)

scaleAdd

public void scaleAdd(double scaleFactor,
                     FrameVector vector1,
                     FramePoint point2)

scaleAdd

public void scaleAdd(double scaleFactor,
                     FramePoint point1,
                     FrameVector vector2)

scaleAdd

public void scaleAdd(double scaleFactor,
                     FramePoint point1,
                     FramePoint point2)

scaleAdd

public void scaleAdd(double scaleFactor,
                     FrameVector vector1)

scaleAdd

public void scaleAdd(double scaleFactor,
                     FramePoint point1)

getPoint

public javax.vecmath.Point3d getPoint()
Returns the Point3d used in this FramePoint

Returns:
Point3d

getPoint

public void getPoint(javax.vecmath.Tuple3d tuple3dToPack)

getPointCopy

public javax.vecmath.Point3d getPointCopy()
Returns a deep copy of the point in this FramePoint.

Returns:
Point3d

getVectorCopy

public javax.vecmath.Vector3d getVectorCopy()
Returns a vector copy of the Point3d used in this FramePoint

Returns:
Vector3d

getVector

public void getVector(javax.vecmath.Vector3d vector)

changeFrameUsingTransformCopy

public FramePoint changeFrameUsingTransformCopy(ReferenceFrame desiredFrame,
                                                javax.media.j3d.Transform3D transformToNewFrame)
Changes frame of this FramePoint to the given ReferenceFrame, using the given Transform3D and returns a copy.

Parameters:
desiredFrame - ReferenceFrame to change the FramePoint into.
transformToNewFrame - Transform3D from the current frame to the new desiredFrame
Returns:
Copied FramePoint in the new reference frame.

changeFrameCopy

public FramePoint changeFrameCopy(ReferenceFrame desiredFrame)
Changes frame of this FramePoint to the given ReferenceFrame and returns a copy.

Specified by:
changeFrameCopy in interface ReferenceFrameHolder
Parameters:
desiredFrame - ReferenceFrame to change the FramePoint into.
Returns:
Copied FramePoint in the new reference frame.

changeFrame

public void changeFrame(ReferenceFrame desiredFrame)
Changes frame of this FramePoint to the given ReferenceFrame.

Parameters:
desiredFrame - ReferenceFrame to change the FramePoint into.

changeFrameUsingTransform

public void changeFrameUsingTransform(ReferenceFrame desiredFrame,
                                      javax.media.j3d.Transform3D transformToNewFrame)
Changes frame of this FramePoint to the given ReferenceFrame, using the given Transform3D.

Parameters:
desiredFrame - ReferenceFrame to change the FramePoint into.
transformToNewFrame - Transform3D from the current frame to the new desiredFrame

checkReferenceFrameMatch

public void checkReferenceFrameMatch(ReferenceFrameHolder referenceFrameHolder)
Specified by:
checkReferenceFrameMatch in interface ReferenceFrameHolder

checkReferenceFrameMatch

public void checkReferenceFrameMatch(ReferenceFrame frame)
                              throws ReferenceFrameMismatchException
Specified by:
checkReferenceFrameMatch in interface ReferenceFrameHolder
Throws:
ReferenceFrameMismatchException

checkForNaN

public void checkForNaN()

containsNaN

public boolean containsNaN()

add

public void add(FramePoint framePoint)

add

public void add(FrameVector frameVector)

add

public void add(javax.vecmath.Tuple3d tuple3d)

add

public void add(FramePoint point1,
                FramePoint point2)

add

public void add(FramePoint point1,
                FrameVector vector2)

add

public void add(FrameVector vector1,
                FramePoint point2)

sub

public void sub(FramePoint framePoint)

sub

public void sub(FrameVector frameVector)

sub

public void sub(FramePoint point1,
                FramePoint point2)

sub

public void sub(FramePoint point1,
                FrameVector vector2)

sub

public void sub(FrameVector vector1,
                FramePoint point2)

setToZero

public void setToZero(ReferenceFrame referenceFrame)

set

public void set(FramePoint framePoint)

setXY

public void setXY(FramePoint2d framePoint2d)

setAndChangeFrame

public void setAndChangeFrame(ReferenceFrame referenceFrame,
                              javax.vecmath.Point3d point)

setAndChangeFrame

public void setAndChangeFrame(FramePoint framePoint)

set

public void set(javax.vecmath.Tuple3d point)

set

public void set(FrameVector frameVector)

setAndChangeFrame

public void setAndChangeFrame(FrameVector frameVector)

applyTransform

public void applyTransform(javax.media.j3d.Transform3D transform)

getMidPoint

public static FramePoint getMidPoint(FramePoint point1,
                                     FramePoint point2)

changeFrameCopyBatch

public static FramePoint[] changeFrameCopyBatch(FramePoint[] framePoints,
                                                ReferenceFrame desiredFrame)

toArray

public static double[] toArray(FramePoint[] framePoints)

weightedAverage

public void weightedAverage(FramePoint point1,
                            FramePoint point2,
                            double weightedAverage)
Sets this point to be the weighted average of the two input points. p =

Parameters:
point1 - FramePoint
point2 - FramePoint
weightedAverage - double
Throws:
ReferenceFrameMismatchException

toString

public java.lang.String toString()
toString

String representation of a FrameVector (x,y,z):reference frame name

Overrides:
toString in class java.lang.Object
Returns:
String

save

public void save(java.io.PrintWriter printWriter)

load

public static FramePoint load(java.io.BufferedReader bufferedReader,
                              ReferenceFrame referenceFrame)
                       throws java.io.IOException
Throws:
java.io.IOException

epsilonEquals

public boolean epsilonEquals(FramePoint framePoint,
                             double threshold)

epsilonEquals

public boolean epsilonEquals(FrameVector frameVector,
                             double threshold)

applyTransformCopy

public FramePoint applyTransformCopy(javax.media.j3d.Transform3D transform3D)

yawAboutPoint

public FramePoint yawAboutPoint(FramePoint pointToYawAbout,
                                double yaw)
yawAboutPoint

Parameters:
pointToYawAbout - FramePoint
yaw - double
Returns:
CartesianPositionFootstep

pitchAboutPoint

public FramePoint pitchAboutPoint(FramePoint pointToPitchAbout,
                                  double pitch)

interpolate

public void interpolate(FramePoint framePoint1,
                        FramePoint framePoint2,
                        double alpha)