org.epseelon.mobimap.geom
Class Point2D

java.lang.Object
  extended by org.epseelon.mobimap.geom.Point2D
Direct Known Subclasses:
Point, Point2D.Double, Point2D.Float

public abstract class Point2D
extends java.lang.Object

This class implements a generic point in 2D Cartesian space. The storage representation is left up to the subclass. Point includes two useful nested classes, for float and double storage respectively.

Since:
1.2
Author:
Per Bothner (bothner@cygnus.com), Eric Blake (ebb9@email.byu.edu)

Nested Class Summary
static class Point2D.Double
          This class defines a point in double precision.
static class Point2D.Float
          This class defines a point in float precision.
 
Constructor Summary
protected Point2D()
          The default constructor.
 
Method Summary
 double distance(double x, double y)
          Return the distance from this point to the given one.
static double distance(double x1, double y1, double x2, double y2)
          Return the distance between two points.
 double distance(Point2D p)
          Return the distance from this point to the given one.
 double distanceSq(double x, double y)
          Return the square of the distance from this point to the given one.
static double distanceSq(double x1, double y1, double x2, double y2)
          Return the square of the distance between two points.
 double distanceSq(Point2D p)
          Return the square of the distance from this point to the given one.
 boolean equals(java.lang.Object o)
          Compares two points for equality.
abstract  double getX()
          Get the X coordinate, in double precision.
abstract  double getY()
          Get the Y coordinate, in double precision.
 int hashCode()
          Return the hashcode for this point.
abstract  void setLocation(double x, double y)
          Set the location of this point to the new coordinates.
 void setLocation(Point2D p)
          Set the location of this point to the new coordinates.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Point2D

protected Point2D()
The default constructor.

See Also:
Point2D.Float, Point2D.Double
Method Detail

getX

public abstract double getX()
Get the X coordinate, in double precision.

Returns:
the x coordinate

getY

public abstract double getY()
Get the Y coordinate, in double precision.

Returns:
the y coordinate

setLocation

public abstract void setLocation(double x,
                                 double y)
Set the location of this point to the new coordinates. There may be a loss of precision.

Parameters:
x - the new x coordinate
y - the new y coordinate

setLocation

public void setLocation(Point2D p)
Set the location of this point to the new coordinates. There may be a loss of precision.

Parameters:
p - the point to copy
Throws:
java.lang.NullPointerException - if p is null

distanceSq

public static double distanceSq(double x1,
                                double y1,
                                double x2,
                                double y2)
Return the square of the distance between two points.

Parameters:
x1 - the x coordinate of point 1
y1 - the y coordinate of point 1
x2 - the x coordinate of point 2
y2 - the y coordinate of point 2
Returns:
(x2 - x1)^2 + (y2 - y1)^2

distance

public static double distance(double x1,
                              double y1,
                              double x2,
                              double y2)
Return the distance between two points.

Parameters:
x1 - the x coordinate of point 1
y1 - the y coordinate of point 1
x2 - the x coordinate of point 2
y2 - the y coordinate of point 2
Returns:
the distance from (x1,y1) to (x2,y2)

distanceSq

public double distanceSq(double x,
                         double y)
Return the square of the distance from this point to the given one.

Parameters:
x - the x coordinate of the other point
y - the y coordinate of the other point
Returns:
the square of the distance

distanceSq

public double distanceSq(Point2D p)
Return the square of the distance from this point to the given one.

Parameters:
p - the other point
Returns:
the square of the distance
Throws:
java.lang.NullPointerException - if p is null

distance

public double distance(double x,
                       double y)
Return the distance from this point to the given one.

Parameters:
x - the x coordinate of the other point
y - the y coordinate of the other point
Returns:
the distance

distance

public double distance(Point2D p)
Return the distance from this point to the given one.

Parameters:
p - the other point
Returns:
the distance
Throws:
java.lang.NullPointerException - if p is null

hashCode

public int hashCode()
Return the hashcode for this point. The formula is not documented, but appears to be the same as:
 long l = Double.doubleToLongBits(getY());
 l = l * 31 ^ Double.doubleToLongBits(getX());
 return (int) ((l >> 32) ^ l);
 

Overrides:
hashCode in class java.lang.Object
Returns:
the hashcode

equals

public boolean equals(java.lang.Object o)
Compares two points for equality. This returns true if they have the same coordinates.

Overrides:
equals in class java.lang.Object
Parameters:
o - the point to compare
Returns:
true if it is equal


Copyright © 2008 Epseelon. All Rights Reserved.